在 Rails 3 中,如何找到将由 呈现的部分的文件名render 'foo'
?
问问题
911 次
1 回答
4
为了清楚起见,如果您render
从控制器内调用,以及render
从视图中的标记内调用,您会得到两个不同的结果。
在控制器中bar
调用render 'foo'
将导致呈现文件<project>/app/views/bar/foo.html.erb
。
在视图中,例如<project>/app/views/bar/show.html.erb
调用<% render 'foo' %>
将导致将部分<project>/app/views/bar/_foo.html.erb
包含在show.html.erb
视图中。部分取自与视图相同的目录。
为了让事情变得更复杂一点,如果您将文件夹名称放入渲染中,例如render 'shared/foo'
这是相对于<project>/app/views
.
所以:
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
PS如果您在命令中指定不同render
,则html.erb
需要相应地更改(例如js.erb
,js.coffee.erb
等)。
http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials
于 2012-11-12T01:22:43.063 回答