0

我有问题。我有模型用户:

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

在我的客户表中,我有列“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

我知道此错误的唯一原因是该users表没有contractor_id列。这就是您在客户的属性列表中看不到它的原因。仔细检查表并生成迁移以添加此列(如果不存在)。

于 2013-11-06T15:08:53.473 回答
1

创建迁移并将其添加到您的数据库

rails g migration AddContractorIdToUsers contractor_id:integer

rake db:migrate

然后继续设置自引用关系自引用活动记录

于 2013-11-06T15:04:12.813 回答