在Rails 3中,如何找到render 'foo'
将呈现的部分文件名?
答案 0 :(得分:3)
为了清楚起见,如果您在控制器中调用render
,并在视图中的标记内调用render
,则会得到两个不同的结果。
在控制器bar
中调用render 'foo'
会导致呈现文件<project>/app/views/bar/foo.html.erb
。
在视图中,例如调用<project>/app/views/bar/show.html.erb
的{{1}}会导致将部分<% render 'foo' %>
纳入<project>/app/views/bar/_foo.html.erb
视图。部分取自与视图相同的目录。
如果你将文件夹名称放入渲染中,那么要使事情变得更复杂一些,例如show.html.erb
这与render 'shared/foo'
相关。
所以:
<project>/app/views
P.S。如果您在Controller: render 'foo' = <project>/app/views/<controller name>/foo.html.erb
render 'shared/foo' = <project>/app/views/shared/foo.html.erb
View: <% render 'foo' %> = _foo.html.erb in directory of view
<% render 'shared/foo' %> = <project>/app/views/shared/_foo.html.erb
命令中指定了其他:format
,则render
需要相应更改(例如html.erb
,js.erb
等等。)
http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials