【问题标题】:Accessing a model through multiple relation通过多重关系访问模型
【发布时间】:2011-12-19 12:20:19
【问题描述】:

您好,我有一个疑问,通过多个模型访问一个模型是否是个好主意。例如

我有5个模型

Class A
    belongs_to :b
end 

Class B
    belongs_to :c
  has_many :a
end 

Class C
    belongs_to :d
  has_many :b
end 

Class D
    belongs_to :e
  has_many :c
end 

Class E
  has_many :d
end 

现在,如果我有一个 E 类的对象,并且我想获取与 E 相关的 A 类的对象,这样做是否正确......或者我应该在 E 类和一些其他类(B/C)

【问题讨论】:

    标签: ruby-on-rails activerecord ruby-on-rails-3.1


    【解决方案1】:

    这真的取决于你。如果您发现自己将这些链接在一起并经常通过链访问它们,请问问自己这种关系是否准确。

    例如,如果我说我的房子有很多房间,而一个房间有很多门,我可以这样做:

    house.rooms.first.doors.first
    

    但如果我经常这样做,我显然会在意门是属于房子的。在这种情况下,我宁愿说:

    house.doors.first_on_floor(2)
    

    你可以这样做

    has_many :doors, :through => :rooms
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 2019-10-03
      • 2014-07-01
      • 1970-01-01
      • 2021-06-03
      相关资源
      最近更新 更多