0

我有模型生产者、公司和用户

我希望生产者和公司同时拥有用户。属于某公司的用户只属于该公司。属于某个生产者的用户只属于该生产者。

所以我想要这样的桌子

productor           company                user
---------           --------               ------
id                  id                     id
name                name                   email
user_id             user_id                password

我尝试使用 has_one 关联来执行此操作,但出现此错误

no such column: users.produtor_id: SELECT  "users".* FROM "users"  WHERE "users"."produtor_id" = 1 LIMIT 1

我的模型如下

class Produtor < ActiveRecord::Base

  attr_accessible :borndate, :cpf_cnpj, :is_company, :name, :rg
  has_one :user
  ...


class User < ActiveRecord::Base
  attr_accessible :email, :password
  ...
end
4

2 回答 2

1

我认为您将 has_one 和 belongs_to 混淆了。

看看Is it a belongs to or has_one 关联 here

使用您拥有的列:

class Productor < ActiveRecord::Base
  belongs_to :user, :inverse_of => :productor
end

class Company < ActiveRecord::Base
  belongs_to :user, :inverse_of => :company
end

class User < ActiveRecord::Base
  has_one :productor, :inverse_of => :user
  has_one :company, :inverse_of => :user
end
于 2012-11-27T21:44:10.307 回答
-1

您是否在您的用户模型中建立了关联?

class User < ActiveRecord::Base
  attr_accessible :email, :password
  belongs_to :productor
  ...
 end
于 2012-11-27T21:44:01.820 回答