0

「ストア」と「ベンダー」の 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 フィールドが含まれています。

所属 = 'ストア' のユーザーである場合、新しいパートナーシップを作成するためのコントローラーはどのようになりますか? パートナーシップコントローラーでそれを行いますか?

4

0 に答える 0