web-dev-qa-db-ja.com

render:actionとrender:templateの違い

違いは何ですか render :action => "new"およびrender :template => "users/new"?レンダリングテンプレートは、他のコントローラーからのビューに使用できると聞きました。それともそれとも、2つの間でレンダリングレイアウトに違いがありますか? render:templateの場合、アクションを定義する必要がありますか、それともビューページ自体で十分ですか?

35
rubyprince

違いはありません。
render :template => 'some/thing'render 'some/thing'と同じですが、someコントローラーにいる場合はrender :action => 'thing'と同じです。

から Ruby on Rails guide ;

render :edit
render :action => :edit
render 'edit'
render 'edit.html.erb'
render :action => 'edit'
render :action => 'edit.html.erb'
render 'books/edit'
render 'books/edit.html.erb'
render :template => 'books/edit'
render :template => 'books/edit.html.erb'
render '/path/to/Rails/app/views/books/edit'
render '/path/to/Rails/app/views/books/edit.html.erb'
render :file => '/path/to/Rails/app/views/books/edit'
render :file => '/path/to/Rails/app/views/books/edit.html.erb'
66
christianblais

以前は、コントローラアクションでrender "foo/bar"を呼び出すことはrender file: "foo/bar"と同等でした。 Rails 4.2、これはrender template: "foo/bar"を意味するように変更されました。ファイルをレンダリングする必要がある場合は、明示的な形式(render file: "foo/bar")を使用するようにコードを変更してください代わりに。

http://guides.rubyonrails.org/4_2_release_notes.html#render-with-a-string-argument

3
user3118220