0

我想将变量传递给部分路由。

有问题的模型如下所示:

 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 使用“狗”或“猫”。我知道我需要使用多态路由,但我无法为这种场景制定语法。

4

2 回答 2

2

尝试这个

link_to "dogs", [foo, :dogs]

在rails 3中它可以工作

于 2013-07-12T08:06:30.467 回答
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 中有更好的方法,但它可以完成工作。

于 2013-07-12T03:28:28.730 回答