これはあなたが求めている正確に何であるならば、私はわからないんだけど、あなたはこのような何かを行うことができます...コメントのためのあなたのUserモデルで仮想アクセサを作る:
def with_comment
if params[:user][:comment]
@comment = self.comments.build params[:user][:comment]
else
@comment = self.comments.build
end
end
def with_comment=(comment)
self.comments.build comment
end
その後アプリ/ビュー/ユーザー/登録/ new.html.erbに:
<%= form_for(resource.with_comment(params),
:as => resource_name,
:url => registration_path(resource_name)) do |f| %>
<% f.fields_for :with_comment, resource.with_comment do |cf| %>
<% cf.text_area :message %>
...
私はこれをテストしていませんが、それは私が使用している同様の作業コードから適応されます。
これは実際にコメントが追加されたユーザーフォームです。私はそのことを念頭に置いて、それを戦わないようにしましょう。
ユーザーがサインインしていないときに、ユーザーモデルフィールドを使って何を行う予定ですか? – David
ユーザフィールドは、ユーザがログインしていない場合にのみ表示されます。ログインしている場合は、コメント作成者(ユーザ)がコメントコントローラで「作成」時に割り当てられます。 –
多分私はあなたを誤解します。ユーザーがログインしていない場合は、同じ電子メールを持つユーザーを検索し、コメントの作成者として割り当てますか?もし存在しなければどうですか?または、記事の著者がコメントに割り当てられていることを意味しますか(記事にコメントが投稿されていると仮定します)。 – David