我已经退出循环有一段时间了,谦虚地要求自己复习。
我想以手风琴样式切换项在其各自的PartnerCategories下列出所有合作伙伴
<div class="panel-group">
<% @categories.each do |category| %>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
<%= category.name %>
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body">
<% category.partners.each do |partner| %>
<p style="text-align:left;"><%= link_to "#{partner.firma}".html_safe, partner_path(partner) %><span style="float:right;"><%= "#{partner.full_street_address}"%></span></p>
<% end %>
</div>
</div>
</div>
<% end %>
</div>
型号:
class Partner
has_many :partner_categories, :dependent => :destroy, :inverse_of => :partner
accepts_nested_attributes_for :partner_categories, :allow_destroy => true
class PartnerCategory
belongs_to :partner, :inverse_of => :partner_categories
控制器:
class PartnersController < ApplicationController
def index
@partners = Partner.all
@categories = PartnerCategory.all
end
执行此操作时,我会遇到无方法错误
category.parters.each
我知道我缺少什么。.只是找不到解决方法。
请保持温柔..我知道这对于大多数人来说是基本的。.并且预先感谢!
答案 0 :(得分:1)
您的PartnerCategory
模型与您的Partner
模型之间具有属主关系,这意味着您的category
每条记录只有partner
而不是partners
。 / p>
要实现所需的功能,建议您使用与下面类似的设置来生成另一个模型,当您需要添加验证或回调加入模型时,这特别有用。
class Partner
has_many :partner_categories
has_many :categories, through: :partner_categories
end
class PartnerCategory
belongs_to :partner
belongs_to :category
end
class Category
has_many: partner_categories
has_many :partners, through: :partner_categories
end
这样,您将通过PartnerCategory
拥有has_many关系,并且可以访问category.parters.each
中某个类别的所有合作伙伴