web-dev-qa-db-ja.com

別のコントローラーからコントローラーアクションをレンダリングする

コードはより明示的だと思います

オプションA

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

オプションB

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

(B)で別のコントローラーに別のアクションをロードすることは可能ですか? (ビューだけでなく)どうやって?ありがとう

25
user142913

render 'posts/show'またはrender :template => 'posts/show'をお試しください

46
Bohdan

テンプレートをレンダリングするだけ

def index
  render 'posts/show'
end

これも機能します

def index
  render template: 'posts/show'
end

他のレイアウトでレンダリングしたい場合

def index
  render template: 'posts/show', layout: 'different_layout' 
end
2
Deepak Mahakale