我有路线...... foo_path
和foo_bar_path
。 link_to
中的简单助手。
在同一个链接中,我正在尝试定义两个不同的路径......
@foo
可能属于班级Foo
,也可能属于班级FooBar
。它是多态的。所以,我想通过某种@foo.class.name.underscore
调用来构建路径,以预先添加到_path
。
我不能用link_to 'foo', "/#{@foo.class.name.underscore}/:id"
原始发送它,因为我必须用它发送一些参数,所以只使用路由助手工作。除非你知道如何用那个bugger发送params ......这可能会简化一些事情。
这有意义吗?
答案 0 :(得分:1)
Rails将从对象类型推断路径名称。如果您传递Foo
对象,则会使用foo_path
。如果您传递FooBar
对象,则会使用foo_bar_path
。
<%= link_to 'foo', foo %>
假设foo
是Foo
或FooBar
对象之一。
我在名为"Polymorphic Routes"的博文中深入介绍了这一点。