0
我有一個表格創建一個signed_user
。這是表格的第一行:爲什麼這個用戶沒有邀請?
<%= form_for(setup_user(@signed_user)) do |f| %>
的setup_user是在我的應用助手:
def setup_user(user)
user.tap do |u|
u.build_invitation
end
end
這些模型協會:
signed_user
型號:
has_one :invitation, :foreign_key => "sender_id"
invitation
模型:
belongs_to :sender, :class_name => 'SignedUser'
那麼,爲什麼沒有被邀請創建了一個用戶?我檢查了我的控制檯和用戶的邀請是零......
我不希望表單修改邀請模型中的屬性。同時,我嘗試添加'accepts_nested_attributes_for:邀請:allow_destroy => TRUE'但這沒有工作 – user730569 2011-05-01 06:12:57
你需要,如果你想邀請屬性被髮送回服務器的形式使用fields_for。否則,您可以在SignedUsersController#create方法中創建您的邀請記錄:u.create_invitation。只要確保u.save和u.create_invitation指令是事務的一部分以避免持續存在不一致的數據。更妙的是,在SignedUser模型中使用after_create回調可以在每次創建新的SignedUser記錄時生成一個邀請記錄(在這種情況下無需擔心事務)。 – mbreining 2011-05-01 06:22:11
回調的方法代碼是什麼樣的? – user730569 2011-05-01 06:28:56