1

在 Rails 3 中,如何找到将由 呈现的部分的文件名render 'foo'

4

1 回答 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

:formatPS如果您在命令中指定不同render,则html.erb需要相应地更改(例如js.erbjs.coffee.erb等)。

http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials

于 2012-11-12T01:22:43.063 回答