Rails - controller action name to string

Viewed 115711

I have a Rails question.

How do I get a controller action's name inside the controller action?

For example, instead of

def create
  logger.info("create")
end

I want to write something like

def create
  logger.info(this_def_name)
end

What is a way to get this_def_name?

7 Answers

In the specific case of a Rails action (as opposed to the general case of getting the current method name) you can use params[:action]

Alternatively you might want to look into customising the Rails log format so that the action/method name is included by the format rather than it being in your log message.

mikej's answer was very precise and helpful, but the the thing i also wanted to know was how to get current method name in rails.

found out it's possible with self.current_method

easily found at http://www.ruby-forum.com/topic/75258

You can get the Action Name like this

Controller Method

def abc

   params[:action] #you can store this any variable or you can directly compare them.

   ab == params[:action] 
 
end

This supports from rails 4 to rails 6 versions.

Related