rails 5 belongs_to 或 has_and_belongs_to_many?
rails 5 belongs_to or has_and_belongs_to_many?
我已经离开循环有一段时间了,虚心请求复习。
我想在各自的 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
我知道我遗漏了一些东西..只是找不到解决方案。
请轻点..我知道这对大多数人来说都是基本的..提前致谢!
您的 PartnerCategory
模型与您的 Partner
模型有 belongs_to 关系,这意味着您的 category
只有 partner
而不是 partners
每条记录。
为了实现您想要的效果,我建议您使用类似于以下的设置生成另一个模型,这在您需要添加验证或回调连接模型时特别有用。
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
中某个类别的所有合作伙伴
我已经离开循环有一段时间了,虚心请求复习。
我想在各自的 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
我知道我遗漏了一些东西..只是找不到解决方案。
请轻点..我知道这对大多数人来说都是基本的..提前致谢!
您的 PartnerCategory
模型与您的 Partner
模型有 belongs_to 关系,这意味着您的 category
只有 partner
而不是 partners
每条记录。
为了实现您想要的效果,我建议您使用类似于以下的设置生成另一个模型,这在您需要添加验证或回调连接模型时特别有用。
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