Rails3の部分テンプレート内でxxx_pathというビューヘルパーが使用できない
Qiitaにメモしておいたんだけど、こちらにも書いておく。
http://qiita.com/items/812
ビューテンプレート./app/tasks/index.html.erb
から
<% @tasks.each do |task| %> <%= render task %> <% end %>
のようにして部分テンプレート./app/tasks/_task.html.erbを表示させたときに、部分テンプレート内で
<%= link_to 'Show', task %>
と書くと、
"/tasks/1"
というRESTful URLではなく、
"/task.1"
といったURLが生成されてしまう。
<%= task_path(task) %>
<%= url_for(task) %>
でも同様で、
<%= url_for(:controller => 'tasks', :action => 'show', :id => task[:id]) %>
のように、controllerとactionを指定すれば、正常なURLが生成される(らしい)。部分テンプレートの制限なのか、別のお作法があるのかはよくわかっていない。