user142913
user142913

Reputation: 923

Render controller action from another controller

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

Upvotes: 40

Views: 63276

Answers (2)

Bohdan
Bohdan

Reputation: 8408

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

Upvotes: 68

Deepak Mahakale
Deepak Mahakale

Reputation: 23711

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

Upvotes: 9

Related Questions