2011-12-26 2 views
0

У меня есть следующие отношения:Проблемы с петлями для вложенных моделей

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> 

Вышеупомянутый код создает следующие ссылки для меня:

  • магазины/Walmart/продукция/большой пистолет
  • магазины/Walmart/Продукты/фрукты

вместо

  • магазины/пистолет-магазин/продукты/крупногабаритные орудия
  • магазины/walmart/продукты/фрукты

ответ

2

Вы поставляете один и тот же магазин для каждой ссылки, чтобы он не работал.

Попробуйте это:

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

Переменная @store, по-видимому Walmart. Если вы не измените его, он останется Walmart.

+0

Хотя я пытаюсь отобразить этот список на главной странице моего веб-сайта. Как вы предлагаете мне настраивать переменные в контроллере? – imjp

+1

@imjp Смысл что? Сохраните список продуктов как есть, и покажите магазин каждого продукта, как в ответе. –

+0

Ничего, я идиот. Я думал, что он поставил @ store.product вместо product.store. Спасибо, Дэвид. – imjp

Смежные вопросы