【问题标题】:Undefined method for nil:NilClass on `current_user`nil 的未定义方法:`current_user` 上的 NilClass
【发布时间】:2017-05-20 12:17:46
【问题描述】:

我的 Rails 应用程序中有两个模型:

class User < ActiveRecord::Base
  has_many :restaurants
end

class Restaurant < ActiveRecord::Base
  belongs_to :user
end

当我尝试获取用户餐馆但用户没有任何餐馆时,我收到以下错误:

nil:NilClass 的未定义方法 `restaurants'

我正在使用以下代码检查该方法是否为零,但它不起作用:

if !current_user.restaurants.nil?
  @restaurants = current_user.restaurants.paginate(page: params[:page], per_page: 2)
end 

如何检查用户的餐厅是否为nil

【问题讨论】:

  • 确切的错误信息是什么?缺失的方法真的叫xx吗?只是询问,因为在您的示例中没有调用名为 xx 的方法。
  • 可能错误在于current_usernil,而您在调用restaurants 时会收到该错误。
  • 我收到以下错误,我编辑了问题:nil:NilClass 的未定义方法`restaurants'
  • 你使用设计吗?

标签: ruby-on-rails ruby


【解决方案1】:

问题是current_user:

"nil:NilClass 的未定义方法 `restaurants'"

current_usernil,所以无法响应restaurants。您需要先设置current_user

【讨论】:

  • 是的,你是对的。我是 RoR 的新手,错误代码对我来说有些奇怪。我正在等待 current_user 作为第一个错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
相关资源
最近更新 更多