我试图在<%= render @posts %>
的集合上渲染部分,返回错误:
Missing partial posts/post with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}
但是,如果我使用<%= render :partial => 'post', :collection => @posts %>
我在同一文件夹中_post.html.erb
使用post
变量(来自帖子)
为什么前一个在集合上呈现部分的示例方式不起作用,但后一个示例确实有效?
编辑:我应该指定我使用的是Rails 3.2.1
答案 0 :(得分:3)
对象的默认值to_partial_path
始终作为该类的视图文件夹的范围,因此您的部分必须位于posts
视图文件夹中。
当您使用表单render :partial => 'post'
时,它会查找您当前所在控制器的文件夹。
我怀疑你没有在PostsController
视图文件夹中工作,这可以解释你所看到的行为。如果您在posts
视图文件夹中工作,那么必须继续进行其他操作,以便您可以提供更多有助于进一步诊断的详细信息