У меня есть много ко многим отношениям между двумя моделями, Заказом и Продуктом.Существует объединяющая таблица под названием Линии, чтобы пользователи могли добавлять количества к продуктам, которые они хотели бы заказать.
У меня есть продукты, вложенные в заказы, поэтому мои маршруты выглядят следующим образом:
resources :orders do
resources :products, :controller => "products"
end
end
Я могу успешно перейти к индексу (orders / id / products), если мой index.html.erb является просто заполнителем, однако при попытке отобразить данные у меня возникают проблемы.
MyТаблица с ошибками (в строке <% @ products.each ...) выглядит следующим образом: </p>
<table>
<tr>
<th>URL</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @products.each do |product| %>
<tr>
<td><%= product.url %></td>
<td><%= link_to 'Show', product %></td>
<td><%= link_to 'Edit', edit_order_products_path(product) %></td>
<td><%= link_to 'Destroy', order, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
Мой метод индекса выглядит следующим образом:
def index
@order = Order.find(params[:order_id])
@products = Product.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
end
end
Ошибка указывает, что мой объект @products равен nil;однако в консоли Product.all возвращает 4 элемента.
Я новичок, и я впервые ссылаюсь на вложенные ресурсы, возможно, я просто пытаюсь вызвать его неправильно, используя переменную экземпляра @продукты?
Спасибо