Ruby on rails 基本Rails问题:一对一关系

Ruby on rails 基本Rails问题:一对一关系,ruby-on-rails,activerecord,one-to-one,Ruby On Rails,Activerecord,One To One,令人遗憾的是,我对RoR缺乏理解。我想在一个视图中维护三个一对一的关系。我有以下型号: class Ood< ActiveRecord::Base has_one :female_trait has_one :male_trait end class Female_Trait < ActiveRecord::Base belongs_to :ood end class Male_Trait < ActiveRecord::Base belongs_to :

令人遗憾的是,我对RoR缺乏理解。我想在一个视图中维护三个一对一的关系。我有以下型号:

class  Ood< ActiveRecord::Base
  has_one :female_trait
  has_one :male_trait
end

class Female_Trait < ActiveRecord::Base
  belongs_to :ood
end

class Male_Trait < ActiveRecord::Base
  belongs_to :ood
end

我遗漏了什么概念?

为什么不使用指向女性或男性特质的多态关系

class  Ood< ActiveRecord::Base
  belongs_to :trait, :polymorphic => true
end

class Female_Trait < ActiveRecord::Base
  has_one :oods, :as => :trait
end

class Male_Trait < ActiveRecord::Base
  has_one :oods, :as => :trait
end
类Oodtrue 结束 类女性特征:trait 结束 类男性特征:trait 结束
女性特质和男性特质有相似的属性吗?没有,我试图缩短我的示例代码,应该使用trait1到trait4,而不是重用trait1和trait2。在迁移中如何表达这一点?是吗?yu能否举例说明如何创建女性特征对象,我将投票支持:)
class  Ood< ActiveRecord::Base
  belongs_to :trait, :polymorphic => true
end

class Female_Trait < ActiveRecord::Base
  has_one :oods, :as => :trait
end

class Male_Trait < ActiveRecord::Base
  has_one :oods, :as => :trait
end