Подтвердить что ты не робот

Разница между рендером: действие и рендер: шаблон

В чем разница между render :action => "new" и render :template => "users/new"? Я слышал этот шаблон рендеринга, который мы можем использовать для представлений от других контроллеров. Разве это или есть какая-то разница в рендеринге между ними? Для render: template, необходимо ли иметь определенное действие или сама страница просмотра?

4b9b3361

Ответ 1

Нет разницы.
render :template => 'some/thing' - это то же самое, что только render 'some/thing', а также то же, что и render :action => 'thing', если мы находимся в контроллере some.

От Руководство по Ruby On Rails;

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'

Ответ 2

Ранее вызов 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