y a-t-il un moyen de voir quelle route correspond à une demande du navigateur dans Rails?

StackOverflow https://stackoverflow.com/questions/811314

  •  03-07-2019
  •  | 
  •  

Question

Dans mon fichier routes.rb , j'ai plusieurs routes. Je voudrais savoir laquelle a été appariée pour toute demande qu'un utilisateur peut avoir faite.

Par exemple, dans routes.rb, vous avez les itinéraires suivants:

map.connect ":controller/:action"
map.connect ":controler/:action/:id"

et si j'ai un contrôleur nommé a et une action nommée d'abord , lorsqu'un utilisateur accède à http: // quel que soit / a / premier , je voudrais voir que la route : controller /: action était choisi.

Puis-je le faire pour toute demande?

Était-ce utile?

La solution

Si vous souhaitez simplement savoir quel contrôleur / action vous êtes, le contrôleur fournit les méthodes nom_contrôleur et nom_action . Donc, vous pourriez faire quelque chose comme ça:

# 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>

Autres conseils

La chose la plus proche que j'ai pu trouver était dans les fichiers journaux. Vous verrez pour chaque requête quelle action de quel contrôleur correspond. Vous verrez quelque chose comme ceci:

Parameters: {"action"=>"show", "id"=>"2", "controller"=>"mycontroller"}

À partir de là, cela devrait être facile, non?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top