Ruby on Rails错误:AssociationRelation不是与ActiveModel兼容的对象。它必须实现:to_partial_path

时间:2015-04-27 16:09:08

标签: ruby-on-rails ruby

我有以下观点:

trap

以下# index.html.web <h1>Listing answers</h1> <%= will_paginate %> <%= render [@answers]%> <%= will_paginate %> 行动:

index

我得到以下错误信息:

def index
  @question = Question.find(params[:question_id])
  @answers = @question.answers.paginate(page: params[:page])
  respond_with(@answers)
end

我该如何解决?

3 个答案:

答案 0 :(得分:3)

你可以用两种不同的方式来做。

<%= render @answers %>  OR  
<%= render partial: 'answer', collection: @answers %>

在这两种情况下,您将在局部视图中获得名为“answer”的对象。

您必须在同一目录中存在名为“_answer.html.erb”的文件。

答案 1 :(得分:2)

当您传递collection of instances呈现部分内容时,您不需要在实例周围放置任何方括号。

<%= render @answers %>

并且不要忘记创建视图名称_answer.html.erb

来源:http://guides.rubyonrails.org/layouts_and_rendering.html#passing-local-variables

答案 2 :(得分:1)

index.html.erb

<h1>Listing answers</h1>

<%= will_paginate @answers%>

<%= render @answers%>

<%= will_paginate  @answers%>

必须有一个名为_answer.html.erb

的部分内容   

上面提到的行将循环调用带有answer对象的_answer.html.erb。