我有两个模型“商店”和“供应商”。我创建了一个名为“Partnerships”的单独连接模型,因此一个商店可以有很多供应商,而供应商可以有很多商店。当用户登录时,他们隶属于商店或供应商。我希望他们能够建立伙伴关系。根据我的研究,我认为我已经完成了模型,但我似乎无法正确设置控制器。大多数在线示例仅显示模型而不显示控制器。
class Store < ActiveRecord::Base
attr_accessible :industry, :name
has_many :users
has_many :workorders
has_many :locations
has_many :partnerships
has_many :vendors, :through => :partnerships
class Vendor < ActiveRecord::Base
attr_accessible :industry, :name
has_many :users
has_many :workorders
has_many :locations
has_many :partnerships
has_many :stores, :through => :partnerships
class Partnership < ActiveRecord::Base
belongs_to :store
belongs_to :vendor
attr_accessible :store_id, :vendor_id, :store, :vendor
这是我当前的 partners_controller#new,我在测试期间遇到类型不匹配错误。
if params[:store_id]
@store = Store.where(:id => params[:store_id])
@partnership = Partnership.new(store: @store)
else
flash[:error] = "Store partnership required"
end
这是我的 new.html.erb for Partnerships:
<% if flash[:error] %>
Not found.
<% else %>
<% if current_user.affiliation == 'Vendor' %>
<div class="page-header">
<h1> <%= @store.name %></h1>
</div>
<% else %>
<div class="page-header">
<h1> <%= @vendor.name %></h1>
</div>
<% end %>
<% end %>
我的用户模型包括一个“商店”或“供应商”的隶属关系字段以及一个 company_id 字段。
如果我是 affiliation = 'Store' 的用户,我的控制器会如何创建新的合作伙伴关系?我会在合作伙伴控制器中执行此操作吗?