railscastsを使用してネストされた属性を実装し、アプリケーションでdeviseを使用しています。これが単純な構造です。
GroupとInviteの2つのモデルがあります。
グループモデルは
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"}
コントローラ側でハッシュを変更するにはどうすればよいですか?またはこれを達成するためのより良い方法がありますか。