c'è un modo per vedere quale percorso corrisponde a una richiesta dal browser in Rails?
-
03-07-2019 - |
Domanda
Nel mio file route.rb ho un numero di percorsi. Vorrei sapere quale è stato abbinato per qualsiasi richiesta che un utente possa aver fatto.
Ad esempio, in route.rb hai i seguenti percorsi:
map.connect ":controller/:action" map.connect ":controler/:action/:id"
e se ho un controller chiamato a e un'azione denominata prima , quando un utente passa a http: // qualunque sia / a / first , vorrei vedere che la route : controller /: action era raccolto.
Posso farlo per qualsiasi richiesta?
Soluzione
Se vuoi solo sapere in quale controller / azione ti trovi, il controller fornisce i metodi controller_name
e action_name
. Quindi potresti fare qualcosa del genere:
# in application_controller.rb
before_filter :set_where_am_i
def set_where_am_i
@where_am_i = "#{controller_name}/#{action_name}"
end
# in views/layouts/application.erb, somewhere in your html
# (here I choose the <title>)
<head><title>Here: <%= @where_am_i %></title>
Altri suggerimenti
La cosa più vicina che ho potuto trovare era nei file di registro. Vedrai per ogni richiesta quale azione di quale controller corrisponde. Vedrai qualcosa del genere:
Parameters: {"action"=>"show", "id"=>"2", "controller"=>"mycontroller"}
Da lì, dovrebbe essere facile, vero?