:zoals in rails routes.rb

In config/routes.rbheb ik beide geprobeerd:

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

en

root :to => 'things#index'

Als ik op http://localhost:3000/druk, werken beide benaderingen en lijkt niets anders te zijn.

Waarvoor wordt de optie :asgebruikt?


Antwoord 1, autoriteit 100%

De optie :as vormt een benoemde route.

Meestal wordt het gebruikt in een niet-rootroute. Bijvoorbeeld:

match '/search' => 'search#search', :as => 'search' # SearchController#search

Je zou dan zoiets kunnen doen:

<%= link_to search_path, 'Click Here to Search!' %>

search_pathen search_urlzijn gedefinieerd vanwege de :as

Voor een rootroute heb je :asniet echt nodig omdat de URL-helpers root_pathen root_urlvoor je worden gedefinieerd door Rails.


Antwoord 2, autoriteit 18%

Rails 4 compatibel.

In path_to_your_app/config/routes.rb

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

Sinds ruby ​​2.0 kunt u het volgende gebruiken:

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

In path_to_your_app/app/views/**invereiste weergave

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

Gebruik matchniet als je niet zeker weet of je het nodig hebt:

Het creëert een kwetsbaarheid wanneer je het in het volgende patroon gebruikt:

match ':controller/:action/:id'

Uit documentatie:

Gebruik de match-methode niet in uw router zonder
het specificeren van een HTTP-methode. Als je je actie aan beide wilt blootstellen:
GET en POST, voeg toe via: [:get, :post]optie. Als je wilt bloot
uw actie om te GET, gebruik get in de router:

In plaats van: match "controller#action"

Doe: get "controller#action"

Lees meer over:

Over wedstrijd

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

Over het in kaart brengen van routes

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

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

Over routes in het algemeen

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


Antwoord 3, autoriteit 6%

De optie :asmaakt een benoemd pad aan. Je kunt dit pad dan aanroepen in je controllers en views (bijv. redirect_to things_path). Dit is niet erg handig voor het rootpad (omdat het al rootheette), maar is erg handig voor nieuwe routes die je toevoegt.

Other episodes