rails 3从集合中呈现部分

时间:2012-03-10 15:02:30

标签: ruby-on-rails ruby-on-rails-3

我试图在<%= 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

1 个答案:

答案 0 :(得分:3)

对象的默认值to_partial_path始终作为该类的视图文件夹的范围,因此您的部分必须位于posts视图文件夹中。

当您使用表单render :partial => 'post'时,它会查找您当前所在控制器的文件夹。

我怀疑你没有在PostsController视图文件夹中工作,这可以解释你所看到的行为。如果您在posts视图文件夹中工作,那么必须继续进行其他操作,以便您可以提供更多有助于进一步诊断的详细信息