プログラミング

Rails ルーティングについて

rails cをすると、 Prefix; Verb; URI Pattern; Controller#Action; と分かれて表示されるかと思いますが、
これらそれぞれ意味するものや、定義の仕方について説明します。

get ‘userinfo/show/:here/:dist’ => ‘userinfo#show’,as:’userinfo_show’

routes.rbから、この行を例にとって説明します。

最初のgetpost、他にもありますが、これらがVerb
getやpostに続いて指定しているパスが、URI pattern
:ortoor=>で定義しているのが、コントローラーのアクションを示す、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:で同じファイルを指定しています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です