Render controller action from another controller

56,723

Solution 1

Try render 'posts/show' or render :template => 'posts/show'

Solution 2

Just render the template

def index
  render 'posts/show'
end

This one also works

def index
  render template: 'posts/show'
end

If you want to render in some other layout

def index
  render template: 'posts/show', layout: 'different_layout' 
end
Share:
56,723
user142913
Author by

user142913

Updated on March 28, 2020

Comments

  • user142913
    user142913 over 4 years

    I think the code is more explicit

    option A

    class RedirectController < ApplicationController
      def index
        redirect_to :controller => 'posts', :action => 'show', :id => 1
        # it works
      end
    end
    

    option B

    class RedirectController < ApplicationController
      def index
        render :controller => 'posts', :action => 'show', :id => 1
        # it doesn't work
      end
    end
    

    Is possible in (B) to load another action in another controller? (and not just the view) How? Thanks