config/routes.rb
で、私は両方を試しました:
root :to => 'things#index', :as => 'things'
そして
root :to => 'things#index'
http://localhost:3000/
を押すと、両方のアプローチが機能し、違いはないようです。
:as
オプションは何に使用されますか?
:asオプションは名前付きルートを形成します。
通常、ルート以外のルートで使用されます。例えば:
match '/search' => 'search#search', :as => 'search' # SearchController#search
次のようなことができます:
<%= link_to search_path, 'Click Here to Search!' %>
search_path
およびsearch_url
は、:as
ルートルートの場合、:as
URLヘルパーroot_path
およびroot_url
はRailsによって定義されます。
path_to_your_app/config/routes.rb
get "/profile/edit" => "users#profile_edit", :as => "edit_me"
Ruby 2.0なので、以下を使用できます。
get "/profile/edit", to: "users#profile_edit", as: "edit_me"
path_to_your_app/app/views/**in
必要なビュー<%= link_to "Edit profile", edit_me_path %>
match
を使用しないでください。次のパターンで使用すると、脆弱性が作成されます。
match ':controller/:action/:id'
ドキュメントから:
HTTPメソッドを指定せずにルーターで
match
メソッドを使用しないでください。アクションをGETとPOSTの両方に公開する場合は、[:get, :post]
オプション。アクションをGETに公開する場合は、ルーターでgetを使用します。の代わりに:
match "controller#action"
行う:
get "controller#action"
http://github.com/Rails/rails/issues/5964
http://apidock.com/Rails/v4.0.2/ActionDispatch/Routing/Mapper/Base/match
http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Base.html
http://api.rubyonrails.org/classes/ActionDispatch/Routing.html
:as
オプションは、名前付きパスを作成します。その後、コントローラーとビューでこのパスを呼び出すことができます(例:redirect_to things_path
)。これは、ルートパスには(root
という名前が既に付けられているので)あまり有用ではありませんが、追加する新しいルートには非常に有用です。