Ruby on Railsの新機能で、メッセージボードのチュートリアルで、新しいメッセージが以下のように作成されたことが確認されました。Rails:現在のユーザーを使ってメッセージを作成する必要があるのはなぜですか?
私のポイントは、なぜ我々はcurrent_user.buildまたはcurrent_user.newを使用してメッセージを構築しなければならないのです
メッセージ・モデルでは、我々だけで、変数のuser_idを作成することができますし、(私はそのビルドが新しいの別名である読み)その中にcurrent_user.idを格納して、どのユーザがどのメッセージを作成したかを知ることができます。それがこれを行うと、論理的に、同じになるように
def new
@message = current_user.messages.build
end
def create
@message = current_user.messages.build(message_params)
if @message.save
redirect_to root_path
else
render 'new'
end
end
メッセージモデルのスキーマを投稿します。その属性にuser_idという属性が含まれている必要があります。この属性には、作成ステートメントが自動的に設定されます。 –
はい整数としてuser_idがあります。それで、Railは自動的に、UserがMessageのモデルであるため、user_idが存在する必要があるという規則に従っていますか? _idのように、規約に従っていますか? – Tahseen
正確に。 user_idがテーブルにある場合、current_user.messages.buildを実行すると、user_idが自動的に入力されます。 –