render :action => "new"
和 render :template => "users/new"
有什么区别?我听说使用render :template
,我们可以在其他控制器的视图中使用。是这样吗?还是渲染布局在这两者之间也有差异?对于render :template
,是否需要定义一个动作或仅有视图页面就足够了?
render :action => "new"
和 render :template => "users/new"
有什么区别?我听说使用render :template
,我们可以在其他控制器的视图中使用。是这样吗?还是渲染布局在这两者之间也有差异?对于render :template
,是否需要定义一个动作或仅有视图页面就足够了?
没有区别。render :template => 'some/thing'
与仅使用render 'some/thing'
相同,也与在some
控制器中使用render :action => 'thing'
相同。
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'
以前,在控制器中调用"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
render :action => 'some_controller_action', :layout => 'some_layout_in_layout_folder'
将呈现该控制器操作的视图并应用位于layout_folder
布局中的javascript
、CSS
资产设置的some_layout_in_layout_folder
布局。
如果您将其编写为控制器操作,则它将与类开始处定义的任何布局一起使用指定布局的样式(如果有)。