Rails - 控制器动作中的nilclass

时间:2014-09-24 09:44:15

标签: ruby-on-rails ruby-on-rails-4

在我看来,我有 -

<%= link_to 'remove pdf', controller: 'chap_comments', action: 'remove_file', id: comment.id %>

在我的控制器中我有 -

def remove_file
  @chap_comment.remove_chap_comment_pdf!
  @chap_comment.save
end

...我正在undefined method remove_chap_comment_pdf!&#39;为零:NilClass` - 为什么不认可这个类?

同样,以下 -

<%= link_to 'remove pdf', remove_file_chap_comment_path(:id), method: :delete %>

...得到同样的错误。

2 个答案:

答案 0 :(得分:3)

def remove_file
  @chap_comment = ChapComment.find(params[:id)
  @chap_comment.remove_chap_comment_pdf!
  @chap_comment.save
end

你还没有找到评论或分配它,所以@chap_comment是零。

答案 1 :(得分:0)

您正在id中传递link_to但未使用它来查找您收到此错误的原因。使用它: -

  @chap_comment = ChapComment.find(params[:id)
  ##do anything with this @chap_comment

在服务器日志(控制台)中看到,您可以看到如下内容: -

Processing by ChapsController#remove_file as HTML
  Parameters: {"id"=>"9"}

这意味着 - 你拥有id但不使用它