Running code in another controller action

I am doing a partial render in the view from one controller. Here is the code -> <%= render :template => ‘restaurants/new’ %>. I want the other controller new action code to do it. Is there a way to call an action in another controller ? I don’t want to duplicate the same code in two controllers.

In a nutshell, no. If you need to do this you might want to look at:

- putting the shared code into a module
- putting it into a common ancestor of the 2 classes
- moving the functionality into a helper that both controllers can
share
- look at cells gem, which is one way of having reusable units of view
+ code

Fred

Thanks . I am experiment by putting common code in a helper . How Do i access it from my controller. I tried to do ApplicationHelper::base64_url_decode in the ApplicationController bu I am getting method not defined. Any ideas? :slight_smile:

module ApplicationHelper

def base64_url_decode str
encoded_str = str.gsub(’-’,’+’).gsub(’_’,’/’)
encoded_str += ‘=’ while !(encoded_str.size % 4).zero?
Base64.decode64(encoded_str)
end

def decode_data str
encoded_sig, payload = str.split(’.’)
data = ActiveSupport::JSON.decode base64_url_decode(payload)
end
end

Put it in application_controller.rb