render :action => "new"和render :template => "users/new"有什么区别?我听说过渲染模板,我们可以用于其他控制器的视图。这是不是或者在渲染布局方面两者之间有什么不同?对于render :template,是否有必要定义一个操作,或者视图页面本身就足够了?
发布于 2011-02-19 02:48:22
这是没有区别的。
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'发布于 2015-04-20 18:54:39
以前,在控制器操作中调用render "foo/bar"等效于render file: "foo/bar"。在Rails4.2中,这已经改为表示render template: "foo/bar"。如果需要呈现文件,请将代码更改为使用显式形式(render file: "foo/bar")。
http://guides.rubyonrails.org/4_2_release_notes.html#render-with-a-string-argument
发布于 2020-06-09 23:16:59
render :action => 'some_controller_action', :layout => 'some_layout_in_layout_folder'将呈现该控制器操作的视图,并应用some_layout_in_layout_folder布局的资源设置(javascript、CSS)。
如果在控制器操作中编写,它将使用指定布局的样式以及类开头定义的任何布局(如果有的话)
https://stackoverflow.com/questions/5045222
复制相似问题