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). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |