【Rails】createアクションが呼ばれるタイミングっていつなん...
以前の記事で、dotinstallを勉強してる途中にでてきた疑問点の考察。
ルーティングをみてみると、
▶ rake routes Prefix Verb URI Pattern Controller#Action projects GET /projects(.:format) projects#index POST /projects(.:format) projects#create new_project GET /projects/new(.:format) projects#new edit_project GET /projects/:id/edit(.:format) projects#edit project GET /projects/:id(.:format) projects#show PATCH /projects/:id(.:format) projects#update PUT /projects/:id(.:format) projects#update DELETE /projects/:id(.:format) projects#destroy root GET / projects#index
この図でいうと、POSTになってるのはcreateアクションだ。ということはcreateが新しいデータを保存する役割。
newアクションっていうのはフォームでユーザに値を入力させて、postでcreateアクションに値を渡すためのものみたいだ。
createアクションを読んだりする処理とかは特別には書いてないと思うんだけど、どういうロジックとタイミングで呼ばれるんだろう。
該当するcontrollerのnewアクション(projects#new)に対応するviewからpostでsubmitされたら自動的にcreateが呼ばれるのかな?
RailsでのPOSTとかGETの扱いが未だによくわからん。。。
ググってみると
ここでは冒頭で紹介した7つのアクションのうち、フォームを表示するための「new」と、フォームから投稿されたデータを登録する「create」を用意します。
ただし、ビューを用意するのはnewアクションだけです。createアクションは実行後、データの登録が成功したらindexアクションにリダイレクトし、失敗したらnewアクションのビューを再レンダリングするようにします。
http://www.atmarkit.co.jp/ait/articles/1403/28/news035_3.html
とある。うん、PHPベタだとnew.htmlファイルとcreate.phpを分けて作るのに似てる。そしてcreate.phpからindex.htmlにリダイレクトする的な。それが、Railsでは名前に応じて自動的に行われていると。
そんな感じで理解しておけば支障ないかな...