:as in rails routes.rb

后端 未结 3 1438
情书的邮戳
情书的邮戳 2020-12-04 15:12

In config/routes.rb, I tried both:

root :to => \'things#index\', :as => \'things\'

and

root :to => \'         


        
3条回答
  •  囚心锁ツ
    2020-12-04 15:44

    Rails 4 compatible.

    In path_to_your_app/config/routes.rb

    get "/profile/edit" => "users#profile_edit", :as => "edit_me"
    

    Since ruby 2.0 you can use:

    get "/profile/edit", to: "users#profile_edit", as: "edit_me"
    

    In path_to_your_app/app/views/**in required view

    <%= link_to "Edit profile", edit_me_path %>
    

    Do not use match if you aren't sure you need it:

    It creates a vulnerability when you use it in next pattern:

    match ':controller/:action/:id'
    

    From documentation:

    You should not use the match method in your router without specifying an HTTP method. If you want to expose your action to both GET and POST, add via: [:get, :post] option. If you want to expose your action to GET, use get in the router:

    Instead of: match "controller#action"

    Do: get "controller#action"

    Read more about:

    About match

    http://github.com/rails/rails/issues/5964

    About routes mapping

    http://apidock.com/rails/v4.0.2/ActionDispatch/Routing/Mapper/Base/match

    http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Base.html

    About routes in general

    http://api.rubyonrails.org/classes/ActionDispatch/Routing.html

提交回复
热议问题