需要帮助解决 NoMethod Error

Need help resolving NoMethod Error

我需要帮助解决错误。我已经对此进行了一段时间的研究,但似乎无法弄清楚如何解决此问题。在此先感谢您的帮助。目标是在我的评论者 table.

中更新字段 'industry'

错误:

NoMethodError (undefined method `find' for #<Reviewer:0x007fee8dbb3f40>)

我设置控制器的reviewers_controller中包含此错误的代码:

def set_reviewer
  @reviewer = current_user.reviewer.find(params[:id])
end

更新方法如下:

  def update
    if @reviewer.update(reviewer_params)
      render json: @reviewer
    else
      render json: @reviewer.errors, status: :unprocessable_entity
    end
  end

这是我的模型:

class Review < ApplicationRecord
  belongs_to :reviewer
end


class User < ApplicationRecord
  include Authentication
  has_one :reviewer
  has_many :reviews, through: :reviewer
end

class Reviewer < ApplicationRecord
  belongs_to :user
end

set_reviewer 中,我尝试了 .find_by 但没有用。我已经阅读了有关 has_one 宏和 .find() 的文档,但我只是想转转。任何帮助是极大的赞赏。非常感谢!

您可以通过以下方式设置审阅者:

@reviewer = current_user.reviewer

current_user.reviewer 将 return 关联的审阅者对象。您收到此错误是因为您试图在审阅者对象本身上调用 find。