render :action和render :template的区别是什么?

42

render :action => "new"render :template => "users/new" 有什么区别?我听说使用render :template,我们可以在其他控制器的视图中使用。是这样吗?还是渲染布局在这两者之间也有差异?对于render :template,是否需要定义一个动作或仅有视图页面就足够了?

3个回答

81

没有区别。
render :template => 'some/thing'与仅使用render 'some/thing'相同,也与在some控制器中使用render :action => 'thing'相同。

来自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'

5

0
 render :action => 'some_controller_action', :layout => 'some_layout_in_layout_folder'

将呈现该控制器操作的视图并应用位于layout_folder布局中的javascriptCSS资产设置的some_layout_in_layout_folder布局。

如果您将其编写为控制器操作,则它将与类开始处定义的任何布局一起使用指定布局的样式(如果有)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接