Rails 3 では、レンダリングされるパーシャルのファイル名を見つけるにはどうすればよいrender 'foo'
ですか?
1 に答える
明確にするためrender
に、コントローラー内から呼び出した場合とrender
、ビューのタグ内から呼び出した場合に、2 つの異なる結果が得られます。
コントローラー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
PSコマンドで別のものを指定する場合は、それに:format
応じて変更する必要があります (例: 、など)。render
html.erb
js.erb
js.coffee.erb
http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials