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 に答える