rails c
をすると、 Prefix; Verb; URI Pattern; Controller#Action; と分かれて表示されるかと思いますが、
これらそれぞれ意味するものや、定義の仕方について説明します。
get ‘userinfo/show/:here/:dist’ => ‘userinfo#show’,as:’userinfo_show’
routes.rb
から、この行を例にとって説明します。
最初のget
やpost
、他にもありますが、これらがVerb
getやpostに続いて指定しているパスが、URI pattern
:
orto
or=>
で定義しているのが、コントローラーのアクションを示す、Controller#Action
最後に、as:
で定義しているのが、Prefix
となります。
getやpostに関してはわかるかと思います。
簡単に言えば、getが指定されていれば、そのURLにアクセスすることができます。もっとも、Railsの場合は、そのgetのURLに基づいたhtml.erbが存在しないと、エラーになってしまうのですが。
postは、ユーザーがフォームなどに入力したデータを、postで指定した他のファイルに送信する役割です。
他にもputとかありますが、難しいので省略。
to
で指定するのが、アクションです。ここでは、userinfo_controller.rbのdefで定義された、showアクションを指定しています。そのshowアクションに書いてあるRubyコードが、最終的にページが表示されるまでに処理されるわけです。
prefixですが、これはファイルパスのユーザー定義、とでも言えば良いのでしょうか。
このPrefixに、_path
をつければ、Railsのプロジェクトフォルダのどこからでも、特定のファイルを参照することができます。
例えば、
<%= form_for(@userinfo , url: dev/update) do |f| %>
<%= f.text_area :name %>
<%= f.submit %>
<% end %>
と書くのと、
<%= form_for(@userinfo , url: dev_update_path) do |f| %>
<%= f.text_area :name %>
<%= f.submit %>
<% end %>
と書くのは、同じです。
双方とも、url:
で同じファイルを指定しています。