我已经使用railscasts实现了嵌套属性,并且我在应用程序中使用了设计。这是简单的结构。
我有两个模型,即 Group 和 Invite。
组模型有
accepts_nested_attributes_for :invites, :reject_if => lambda { |a| a[:email].blank? }, :allow_destroy => true
它工作得很好。这是参数的哈希值。
Parameters: {"utf8"=>"✓", "authenticity_token"=>"uI0HmJrIE9Qh3pZW2qIJymeON/yjbFSgcH8bRx/x5Oo=", "group"=>{"name"=>"Test Group", "description"=>"", "invites_attributes"=>{"0"=>{"name"=>"Test User", "email"=>"test@example.com", "_destroy"=>"false"}}}, "commit"=>"Create Group"}
现在的问题是我想将受邀者 user_id 存储在邀请表中,但我可以在邀请模型中访问 current_user。那么如何修改哈希以将 current_user id 保存在邀请模型中。
如果我的哈希参数是:基本上事情会很容易:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"uI0HmJrIE9Qh3pZW2qIJymeON/yjbFSgcH8bRx/x5Oo=", "group"=>{"name"=>"Test Group", "description"=>"", "invites_attributes"=>{"0"=>{"name"=>"Test User", "email"=>"test@example.com", "_destroy"=>"false", :invited_by => "1" }}}, "commit"=>"Create Group"}
如何在控制器端修改哈希?还是有更好的方法来实现这一点。