Ruby on Rails - 渲染和渲染动作之间的区别:

时间:2014-07-14 20:55:56

标签: ruby-on-rails ruby ruby-on-rails-3 action render

我无法理解'渲染'之间的差异。并且'渲染动作:'在Ruby on Rails中。我找不到答案。

render 'edit'
render action: :edit

通常,edit是控制器中的RESTful方法。渲染'编辑'调用后,控制器会查找名为edit.html.erb的相应视图文件。

我最初的猜测是,这两者都做同样的事情。我的问题是渲染'动作'之间的区别是什么?并呈现动作:'动作'?性能速度有什么不同吗?是否有任何公约比其他公约更受青睐?

先谢谢。

2 个答案:

答案 0 :(得分:2)

我很确定render 'edit'只是为了节省可打字性。

render 'edit'

只是以下的同义词:

render action: :edit
  

性能速度有什么不同吗?

如果有,那将是微不足道的,并且可能偏向action: :edit,因为字符串到符号可能需要更长的时间

答案 1 :(得分:2)

来自另一个SO回答:Difference between render :action and render :template

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"

都是一样的,没有区别。