###前提・質問
Ruby on Railsでのwebアプリケーション開発の勉強をしています。
Rails,Rubyともに初心者です。
railsのif文について疑問があります。
ソースコード1は、viewにあるform_for(コードは省略)によってupdateアクションが実行され、データベースがアップデートされた後に、アップデートされた場合簡易メッセージを表示してインデックスにリダイレクトするという、よく見かけるコードです。
私の疑問は、 if の後に続く @hoge.update(hoge_params) がなぜ実行されるのか、という点です。
この@hoge.update(hoge_params)はあくまで条件判断に用いられるための『条件式』であり、実行するにはifより前にデータベースを更新するためのコードが必要な気がしてしまうのです。
if以下を消した場合データベースの更新がされていなったので、やはり@hoge.update(hoge_params)が実行されているという理解をしています。
かなり基礎的な質問ですが、どうしてもしっくりこないので、どうかよろしくお願いします
###ソースコード1
Ruby
1before_action :set_hoge 2 3def update 4 if @hoge.update(hoge_params) 5 redirect_to action: 'index' , notice: "更新が完了しました。" 6 end 7end 8 9 10private 11 def hoge_params 12 params.require(:hoge) 13 end 14 15 def set_hoge 16 @hoge = Hoge.find(params[:id]) 17 end 18
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/14 06:17