「ストア」と「ベンダー」の 2 つのモデルがあります。「パートナーシップ」と呼ばれる別の結合モデルを作成して、店舗が多くのベンダーを持つことができ、ベンダーが多くの店舗を持つことができるようにしました。ユーザーがログインすると、ストアまたはベンダーのいずれかと提携しています。パートナーシップを築けるようになってほしい。調査に基づいてモデルをダウンさせたと思いますが、コントローラーを正しく取得できないようです。オンラインの例のほとんどは、コントローラーではなくモデルのみを示しています。
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
これは私の現在の Partnerships_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 は次のとおりです。
<% 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 %>
私の User モデルには、「Store」または「Vendor」のいずれかの所属フィールドと、company_id フィールドが含まれています。
所属 = 'ストア' のユーザーである場合、新しいパートナーシップを作成するためのコントローラーはどのようになりますか? パートナーシップコントローラーでそれを行いますか?