i got a simple question that's bothering me all day:
is it possible to find out which method and controller did the
original call?
to make this a little clearer, I want to do the following:
(let's say these two methods are in different controllers)
def first_method
say_my_name
end
def say_my_name
# how do i get the original method and controller
# invoking_method = ?
# invoking_controller =?
puts invoking_method
puts invoking_controller
end
As the OP was speaking of controllers: yes, you can. Check
controller_name and action_name.
But then:
to make this a little clearer, I want to do the following:
(let's say these two methods are in different controllers)
I see no way to have one controller calling instance methods on
another controller. You could achieve this with components, but as the
Rails docs state: you shouldn't.
yes you are right. my example was wrong.
actually the second method ain't in an controller, but in an
initializer. and what i really wanted to do is log the calling
controller_name and method_name. but i wanted to achieve this without
having to add more parameters to my method call.
of course i could just say:
say_my_name(self.controller_name, self.method_name)
but i'm lazy and i don't want to type "(self.controller_name,
self.method_name)" all the time, so i thought tried to find a way to
figure out these infos inside the say_my_name-method.
if there ain't anything better than to parse caller, i'm gonna go with
that.