我想将变量传递给部分路径。
有问题的模型如下所示:
model Foo < ActiveRecord::Base
has_many :dogs
has_many :cats
我想要的路径是:
<%= link_to "#{foo.name}", foo_dogs_path(foo) %>
<%= link_to "#{foo.name}", foo_cats_path(foo) %>
我想使用“狗”或“猫”,具体取决于传入的变量animal_type。我知道我需要使用Polymorphic Routes,但我在编写此方案的语法时遇到了问题。
答案 0 :(得分:2)
试试这个
link_to "dogs", [foo, :dogs]
在rails 3中可以正常工作
答案 1 :(得分:0)
我不知道多态路由,但对于这个简单的事情,你可以随时做:
<% if foo.class.name == "Cat" %>
<%= link_to "#{foo.name}", foo_cats_path(foo) %>
<% else %>
<%= link_to "#{foo.name}", foo_dogs_path(foo) %>
<% end %>
它可能不是超级优雅的,如果你继续寻找,我确信在Rails中有一个更加笨拙的方法,但它可以完成任务。