gpt4 book ai didi

ruby-on-rails - 未定义方法 `+' 为 nil :NilClass - Ruby

转载 作者:数据小太阳 更新时间:2023-10-29 07:04:35 26 4
gpt4 key购买 nike

目前我有一个 Controller 方法,每当用户在 View 表单中输入数字时,该方法就会递增 1。我将展示代码和错误,我只是想确保我在这里提供了足够的背景知识。因此,我有另一种创建 subscriber 的表单,此模型接受姓名和电话号码,但它还有一个 visit 属性,它是一个 int 数据类型。所以给我问题的 Controller 方法,它的功能是通过找到附加到订阅者的号码来增加对订阅者的 1 次访问。但是当用户输入他们的电话号码时,它会为 nil:NilClass 抛出这个错误 undefined method `+' 并且我真的很困惑如何修复它。为清楚起见,这是我的代码。

Controller :

 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

错误:

enter image description here

我不确定还有哪些其他代码适用?如果您需要更多信息,请告诉我。谢谢。

最佳答案

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

在您的迁移中,您可以在创建订阅者时将其默认为 0,这样您就不必担心这个。

t.integer :访问,默认值:0

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

关于ruby-on-rails - 未定义方法 `+' 为 nil :NilClass - Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37715446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com