嵌套模型的循环问题

时间:2011-12-26 04:24:34

标签: ruby-on-rails

我有以下关系:

store.rb -> has_many :products
product.rb -> belongs_to :store

的routes.rb

resources :stores do
  resources :products
end

我现在要做的是创建一个循环,显示所有产品及其所属的商店,这样当我点击锚标签时,它会将我带到正确商店的产品页面,而不是像以下代码那样的另一个商店对我来说:

<ul>
  <% @products.each do |product| %>
    <li>
      <a href="<%= url_for([@store, product]) %>"><%= product.name %></a>  
    </li>
  <% end %>
</ul> 

上述代码为我生成以下网址:

  • 存储/沃尔玛/产品/大枪
  • 存储/沃尔玛/产品/水果

而不是

  • 存储/枪店/产品/大枪
  • 存储/沃尔玛/产品/水果

1 个答案:

答案 0 :(得分:2)

您为每个链接提供相同的商店,因此无法使用。

试试这个:

<a href="<%= url_for([product.store, product]) %>"><%= product.name %></a>

变量@store显然是沃尔玛。如果你不改变它,它将仍然是沃尔玛。