我有问题。 我有模特用户:
class User < ActiveRecord::Base
end
继承自用户的模型承包商
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。
答案 0 :(得分:1)
创建迁移并将其添加到数据库
rails g migration AddContractorIdToUsers contractor_id:integer
rake db:migrate
然后继续设置自引用关系Self referential Active Record
答案 1 :(得分:1)
我知道此错误的唯一原因是users
表没有contractor_id
列。这就是为什么你没有在Customer的属性列表中看到它。仔细检查表并生成迁移以添加此列(如果不存在)。