English 中文(简体)
具有相同的模式。 铁路如何追踪这些铁路?
原标题:has_one and has_many in same model. How does rails track them?
  • 时间:2009-09-26 07:02:35
  •  标签:

我对这项工作如何妥善运作感到困惑不解。 我有一个模式,与其他模式有两种联系。

公司拥有一个所有人,公司有许多雇员属于这一类用户。

我的公司模式如下:

class Company < ActiveRecord::Base
  validates_presence_of :name

  has_many :employee, :class_name =>  User 
  has_one :owner, :class_name =>  User 
  accepts_nested_attributes_for :owner, :allow_destroy => true
end

我的用户模式如下:

class User < ActiveRecord::Base
  include Clearance::User
  attr_accessible :lastname, :firstname #other attr are whitelisted in clearance gem
  validates_presence_of :lastname, :firstname
  belongs_to :company
end

我现在假设,这家公司有3名雇员,包括业主。 当我首次创建公司时,我把业主交给雇员,再给雇员1人,另外2人(2,3人)在雇员名单上增加,确定公司_id(用户.company=公司)。 这三个公司都有自己的公司——向公司提供,我们可以假定的是1个公司。

当我要求公司所有人时,我就有了正确的用户,我是公司。 雇员,我获得三人。

如果我把业主改为用户2,则将用户1自动从雇员中删除,将其公司开到零。 这是一种罚款,如果我把他作为简单雇员回来,所有工作都是好的。

铁路如何知道什么? 我指的是,它如何知道雇员是所有人,而不仅仅是雇员? 图表中没有对此作出定义。

我有感受,我应当扭转业主协会,使公司成为用户。

最佳回答

现在,没有什么东西可以区分业主和雇员。 这意味着,一旦你开始驱逐人民或试图改变主人翁意识,你就会再次陷入问题。

正如François指出的,你只是说,所有者是拥有最低身份的公司的用户。

为了解决这个问题,我将在以下人员中采用我的模式。

class Company < ActiveRecord::Base
  belongs_to :owner, :class_name => "user"
  has_many :employees, :class_name => "user"
  validates_presence_of :name
  accepts_nested_attributes_for :owner, :allow_destroy => true
end

class User < ActiveRecord::Base
  include Clearance::User
  attr_accessible :lastname, :firstname #other attr are whitelisted in clearance gem
  validates_presence_of :lastname, :firstname
  belongs_to :company
  has_one :company, :foreign_key => :owner_id
end

您必须增加另一栏,即“所有人”——在公司桌旁,但这更明确地界定了你的关系。 避免与改变所有人相关的任何麻烦。 请注意,如果你走这条路,并拥有你的数据库,以便用户和公司都能获得周期性依赖。 所有人不能否认。

我不敢肯定的是,如何很好地接受——以归属关系为目的。

问题回答

has sugar

has_many :whatevers, :limit => 1

增加了<代码>:限额 => 1 bit,从而确保只归还1个记录。 在你的一份声明中,确保你有一个<条码>:条款,在一切情况下归还正确记录。 在这种情形下,我向雇员贴上旗帜,以表示谁是所有人,并按该栏分类,以取得正确的记录1。

您对铁路如何了解这一问题表示怀疑,因为大多数数据库将按其主要关键顺序归还记录。 因此,第1名新增雇员拥有第1号身份证,因此将返回第1号。

你们可以有一个称为所有权的模式:

ownership belongs_to company   
ownership belongs_to user

user has_many ownerships
company has_one ownership




相关问题
热门标签