0

問題があります。私はモデルユーザーを持っています:

class User < ActiveRecord::Base
end

User から継承したモデル Contractor

class Contractor < User
  has_many :contractorEs
  has_many :customers
end

User から継承したモデル Customer

class Customer < User
  belongs_to :contractor
  has_many :customer_es
end

Customers テーブルには、「contractor_id」という列があります。次に、次のようrails cに入力します。

c = Contractor.first
c.customers.build

そしてunknown attribute: contractor_id発生した。次に、次のように入力します。

customer = Customer.new

そして持っています:

<Customer id: nil, first_name: nil, last_name: nil, address: nil, country: nil, zip: nil, city: nil, phone: nil, company_name: nil, signature: nil, type: "Customer", created_at: nil, updated_at: nil, v_token: nil, password_digest: nil, u_token: nil, email: nil, state: "new">

contractor_idしかし、リストにはありません。それを解決する方法は?Rails 4 と Ruby 2.0 を使用しています。

4

2 に答える 2

1

移行を作成してデータベースに追加する

rails g migration AddContractorIdToUsers contractor_id:integer

rake db:migrate

次に、自己参照関係のセットアップに進みます自己参照 Active Record

于 2013-11-06T15:04:12.813 に答える
1

このエラーについて私が知っている唯一の理由は、テーブルに列usersがないためです。contractor_idそのため、Customer の属性リストに表示されません。テーブルを再確認し、移行を生成して、この列が存在しない場合は追加します。

于 2013-11-06T15:08:53.473 に答える