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