Aliasing Actions in Rails
Code snippet for application.rb that makes life just a little easier if multiple actions are doing exactly the same thing (both in the controller and the view):
def self.alias_action(existing, aliased)
define_method(aliased.to_sym) do
send(existing.to_sym)
render :action => existing.to_s
end
end
And then in the appropriate controller (where edit is an existing action, and show needs to be exactly the same):
alias_action :edit, :show
I know this is a specialised use – but perhaps someone else out there is doing something similar.
Comments
2 responses to this article
Ah, not quite Nic – as the view for the existing action needs to be rendered as well – which is one extra line:
render :action => "show"for your example.But yeah, it’s not saving many lines of code, I just find it a little more elegant.

Subscribe to the RSS feed