2011-05-24 5 views
7

Esta podría ser una pregunta un poco extraña, pero me preguntaba si alguien conoce una variable de sistema/acceso directo de Rails o algo que me permita hacer un seguimiento de qué controlador está sirviendo una página y qué modelo es llamado por ese controlador. Obviamente, estoy compilando la aplicación, así que lo sé, pero quería crear un complemento más general que pudiera obtener estos datos de manera retroactiva sin tener que pasar manualmente.¿Cómo ver qué controlador/modelo de rieles está sirviendo a la página?

¿Hay un atajo simple para esto?

Respuesta

8

El controlador y la acción se definen en params como params[:controller] y params[:action] pero no hay marcador de posición para "el modelo" como un método controlador puede crear muchos casos de modelos.

Es posible que desee crear algún tipo de método de ayuda para ayudar si quieres:

def request_controller 
    params[:controller] 
end 

def request_action 
    params[:action] 
end 

def request_model 
    @request_model 
end 

def request_model=(value) 
    @request_model = value 
end 

que tendría que establecer explícitamente el modelo cuando se carga cuando el servicio de una solicitud:

@user = User.find(params[:id]) 

self.request_model = @user 
1

Se puede acceder al controlador a través del hash params: params[:controller]. Sin embargo, en realidad no hay una manera de que un controlador use el modelo, porque no hay una correlación necesaria entre cualquier controlador y cualquier modelo. Si tiene una instancia del modelo, puede marcar object.class para obtener el nombre de clase del modelo.

6

Hay varias maneras que conozco:

Primero puede hacer rake routes y verifique la lista de rutas.

En segundo lugar, podría poner <%= "#{controller_name}/#{action_name}" %> en su application.html.erb y mirar la vista para ver lo que dice. si lo pones en el extremo inferior, siempre obtendrás esa información en la parte inferior de la página.

Cuestiones relacionadas