我使用 Rails 3.2.8 和 mySql 作为数据库。我有两个模型,设置和区域。我只能有 N 个区域(N 现在是 6 个),并且可以有许多设置,其中每个设置都必须在一个区域中。
最明显的方法似乎是设置 has_one 区域。然而,这为每个新设置提供了一个新的区域对象。但是,我希望在设置中重用区域对象(这样当其参数更改时,它们会针对所有设置全面更改),而不是为我拥有的每个设置创建一个新区域。我认为最好的方法是以下
class Setup < ActiveRecord::Base
attr_accessible :name, :region_id
end
class Region < ActiveRecord::Base
attr_accessible :name
end
如果我想要与控制器中的设置关联的区域,我会这样做
setup = Setup.find(id)
region = Region.find(setup.region_id)
我只是想知道这是否是它的完成方式,或者是否有任何其他方法可以在 Rails 中使用 ActiveRecord 捕获它,或者是否有任何简洁的抽象,以便我可以执行以下操作?
region = setup.region