加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 未定义的方法`’为nil:NilClass – Ruby

发布时间:2020-12-16 23:29:22 所属栏目:百科 来源:网络整理
导读:目前我有一个控制器方法,每当用户在视图表单中输入数字时,该方法将递增1.我将展示代码和错误,我只是想确保我在这里提供足够的背景.所以,我有另一种形式创建订阅者,该模型采用名称和电话号码,但它也有一个访问属性,它是一个int数据类型.所以给我这个问题的控
目前我有一个控制器方法,每当用户在视图表单中输入数字时,该方法将递增1.我将展示代码和错误,我只是想确保我在这里提供足够的背景.所以,我有另一种形式创建订阅者,该模型采用名称和电话号码,但它也有一个访问属性,它是一个int数据类型.所以给我这个问题的控制器方法,它的功能是通过查找附加到该Subscrier的数字来增加1次访问订阅者.但是当用户键入他们的电话号码时,它会抛出这个错误未定义的方法`’为nil:NilClass而且我真的很难以解决它的问题.这是我的代码清晰.

控制器:

def visit
  @subscriber = Subscriber.find_by_phone_number(params[:phone_number])
  if @subscriber
   @subscriber.visit += 1
   @subscriber.save
   flash[:notice] = flash[:notice] = "Thank You #{@subscriber.first_name}. You have #{@subscriber.days_till_expired} until renewal"
   redirect_to subscribers_search_path(:subscriber)
  else
   render "search"
  end
 end

错误:

我不确定其他代码是否适用?如果您需要更多信息,请告诉我.谢谢.

解决方法

那是因为@ subscriber.visit是nil,你需要先将它设置为0.

在您的迁移中,无论何时创建订阅者,您都可以将其默认为0,然后您不必担心这一点.

t.integer:visit,默认值:0

或者在@ subscriber.visit = 1之前添加@ subscriber.visit || = 0行(如果为nil则将其设置为0).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读