尝试动态链接到我的application.html导航中属于category_id的所有产品名称。
application_controller.rb
class ApplicationController < ActionController::Base
before_action :set_products
before_action :set_categories
rescue_from CanCan::AccessDenied do |exception|
redirect_to main_app.root_url, alert: exception.message
end
private
# Use callbacks to share common setup or constraints between actions.
def set_products
@products = Product.all
end
def set_categories
@categories = Category.all
end
end
product.rb
belongs_to :category
category.rb
has_many :products
application.html.erb
<% @products.each do |product| %>
<%= link_to product.name, product, class: "link-item nav-link roll", src: url_for(product.header_image) %>
<% end %>
我可以在导航中分别显示所有产品名称或所有类别名称,但不能分别显示特定类别的每个产品的名称。
任何帮助都会很棒。
谢谢
答案 0 :(得分:0)
您需要遍历category.products
。 category.products
将返回给您属于某个category
的所有产品模型。
尝试:
<% @categories.each do |category| %>
<% category.products.each do |product| %>
<%= link_to product.name, product, class: "link-item nav-link roll", src: url_for(product.header_image) %>
<% end %>
<% end %>
检查活动记录关联documentation,以查看在has_many
和belongs_to
关联引用的情况下可以使用的所有与关联有关的方法。