【发布时间】:2016-06-22 03:50:45
【问题描述】:
我收到一个 nil 类错误。我完全理解这个错误告诉我什么,但我不知道为什么它是 nil。在我看来,应该有一个对象被传递到我的桌子上。这应该很容易调试。为了清楚起见,这是我的代码。
控制器方法:
def info
@subscriber = Subscriber.find_by_phone_number(params[:phone_number])
end
查看:
<% @subscriber.each do |subscriber| %>
<tr>
<td><%= image_tag avatar_url(subscriber) %></td>
</tr>
<% end %>
错误:
Showing /Users/intern/Desktop/Rails/rowster/app/views/subscribers/info.html.erb where line #3 raised:
undefined method `each' for nil:NilClass
对 info 方法的绑定:
[1] pry(#<SubscribersController>)> @subscriber
=> nil
如果您需要更多信息,请告诉我?
【问题讨论】:
-
您在此处的代码之前运行
info了吗?否则@subscriber不会被初始化。 -
抱歉,“运行
info”是什么意思?我对这一切有点陌生,所以我仍然想念愚蠢的事情 -
你能在你的 info 方法上添加两个调试吗?在现有行下方,logger.debug @subscriber 和 logger.debug 参数。编辑输出
-
这个错误意味着@subscriber 为nil。 Cary 所问的是您的信息操作是否在视图呈现之前运行。如果它正在运行,那么问题是您没有订阅者使用正在传递的电话号码。如果它没有运行,那就是您的问题。
-
在你的
info方法中,可以放置一个binding.pry来确认@subscriber的值吗?
标签: ruby-on-rails ruby