rails method for create ruby-on-rails function

ruby on rails - method - Rieles: nombre de la acción del controlador en la cadena



ruby method (6)

En el caso específico de una acción de Rails (a diferencia del caso general de obtener el nombre del método actual) puede usar params[:action]

Alternativamente, es posible que desee buscar la personalización del formato de registro de Rails para que el nombre de la acción / método esté incluido en el formato en lugar de estar en su mensaje de registro.

Tengo una pregunta de Rails.

¿Cómo obtengo el nombre de una acción del controlador dentro de la acción del controlador?

Por ejemplo, en lugar de

def create logger.info("create") end

Quiero escribir algo como

def create logger.info(this_def_name) end

¿Cuál es una forma de obtener this_def_name ?


Este fragmento funciona para Rails 3

class ReportsController < ApplicationController def summary logger.debug self.class.to_s + "." + self.action_name end end

imprimirá

. . .
ReportsController.summary
. . .


La respuesta de mikej fue muy precisa y útil, pero lo que también quería saber era cómo obtener el nombre del método actual en los rieles.

descubrió que es posible con self.current_method

se encuentra fácilmente en http://www.ruby-forum.com/topic/75258


Solo hice lo mismo. Lo hice en el controlador auxiliar, mi código es:

def get_controller_name controller_name end def get_action_name action_name end

Estos métodos devolverán el controlador actual y el nombre de la acción. Espero eso ayude


nombre del controlador:

<%= controller.controller_name %>

return => ''usuarios''

Nombre de la acción:

<%= controller.action_name %>

return => ''mostrar''

carné de identidad:

<%= ActionController::Routing::Routes.recognize_path(request.url)[:id] %>

return => ''23''


Rails 2.X : @controller.action_name

Rails 3.1.X : controller.action_name , action_name

Rails 4.X : action_name