1

我是新来的铁轨,所以忍受着我...管理Rails ActiveRecord关联的正确方法是什么?

我想创建一组数据相关的2个不同的模型。我目前有以下型号:

class M < ActiveRecord::Base 
belongs_to :u 
belongs_to :s 
end 

class U < ActiveRecord::Base 
has_many :m 
has_many :s, :through => m: 
end 

class S < ActiveRecord::Base 
has_many :m 
has_many :u, :through => m; 
end 

在系统中,用户可以创建很多Us和Ss。但是在创建M时,应确保存在对“u”和“s”的引用。

我知道我能做到以下几点:

m1 = M.create() 
u1.ms << m1 
s1.ms << m1 

其中有所有适当的参考,有没有更好的办法?

回答

0

您应该可以执行one_u.s = one_sone_s.u = one_u

根据the Rails Guides,新的M模型将由ActiveRecord管理。您可以像设置共同的has_many关联那样设置属性,并且将创建(和删除)其中的M行。

+0

我很困惑。你的例子中的参考m1在哪里?你的意思是:u1.s = s1?因为:U中的s是一个“has_many”集合,分配会完成这项工作吗? – machunter 2011-04-19 06:43:11

相关问题