0
我有以下几点:的has_many通过并保存到连接表
class Invite < ActiveRecord::Base
belongs_to :user
has_many :invite_recipients
has_many :recipients, :through => :invite_recipients
end
class InviteRecipient < ActiveRecord::Base
belongs_to :invite
belongs_to :user_comm
validates_associated :user_comm, :invite
validates_uniqueness_of :user_comm_id, :scope => :invite_id
end
class UserComm < ActiveRecord::Base
end
我想创建一个方法与invite_text和UserComms作为变量列表邀请,然后把它创建一个新的邀请用下面的验证:
1.所有UserComms是唯一
2.邀请不会被保存,除非所有相关InviteRecipients保存以及 (换句话说,邀请是不是有效,除非所有创建InviteRecipients是有效)
我不熟悉如何创建模型函数。此外,当我尝试这样的事:
i = Invite.new(:invite_text => 'come join')
ir1 = InviteRecipient.new(:invite => i, :user_comm => user_comm1)
ir2 = InviteRecipient.new(:invite => i, :user_comm => user_comm2)
i.invite_recipients = [uc1, uc2]
i.save!
我得到:SystemStackError:堆栈层次过深
事实上,这也不管用,但这:i.recipients << user_comm1。不过,问题在于我无法在InviteRecient上设置任何属性。 – Paul 2010-06-01 05:35:01