Tom*_*hen 0 ruby model-view-controller ruby-on-rails object
我有一个应用程序,有两个型号类别和产品
产品属于类别.
我创建了一个导航栏下拉列表,要求@category和@product对象在整个应用程序中可用(导航栏显示在应用程序的每个页面上.)
我无法解决的问题是放置这些基本定义的最佳位置,而不是在每个页面定义中多次定义它们.
我需要定义以下内容:
@category = Category.all
@products = @category.products.all
Run Code Online (Sandbox Code Playgroud)
然后导航栏循环看起来像这样.
<% @category.each do |c| %>
<%= c.name %>
<% @products.each do |p| %>
<% link_to product_path(p) do %>
<%= p.name %>
<% end %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我是一个铁杆新手,所以我相信这里有一些错误,但任何帮助将不胜感激!
如果你需要他们的应用程序的每一个网页,你可以设置他们ApplicationController的before_filter:
class ApplicationController
before_filter :get_categories
# ...
private
def get_categories
@categories = Category.includes(:products)
end
end
Run Code Online (Sandbox Code Playgroud)
那么,你可以写在你的视图中:
<% @categories.each do |category| %>
<%= category.name %>
<% category.products.each do |product| %>
<%= link_to p.name, p %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我还修复了一些其他错误和约定不兼容问题.
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |