我试图找一些标签,其中我想展示一个不同类别的" Food"在他们每个人。
我有一个模型"类别",具有:name
属性,我有一个模型" Foods"具有:category_id
属性。
模型协作是:食物有一个类别,类别有很多食物。
我在我的模型中创建了一个范围:by_category:
scope :by_category, -> category {where(category_id: category).reverse_order}
我在我的控制器中创建了一个by_category方法:
def by_category
@category = Category.find(params[:category_id])
@foods = Food.by_category(params[:category_id])
end
在此之后,我将我的数据库播种了7个类别。
所以,我只是想在我的视图中的每个标签中显示一个不同的类别,但没有任何显示(我的标签是空的),虽然我创造了一些食物。
<ul class="accordion-tabs">
<li>
<% @foods.by_category(1).each do |food| %>
<p><%= food.name %><%= food.ingredients %></p>
<% end %>
</li>
<li>
<% @foods.by_category(2).each do |food| %>
<p><%= food.name %><%= food.ingredients %></p>
<% end %>
</li>
</ul>
我的种子是:
SUSHI_CATEGORIES.each do |category_name|
Category.create(name: category_name, description: "Esto es una categoria")
puts "Categoria creada"
end
Food.create(name: "Bandeja Addict", ingredients: "La mejor bandeja de addict, te traemos ahora con salmon y pepino", addict_food_image: "http://www.monstersushi.com/images/slides/sushi20.jpg")
puts "Bandeja Addict creada"
我在这里缺少什么?
非常感谢!
答案 0 :(得分:0)
我通过在每个标签的视图中传递参数来修复它:
<% @foods.by_category(params[3]).each do |food| %>
<%= render "food_card" %>
<% end %>