【问题标题】:undefined method `each' and cannot tell why未定义的方法“每个”,无法说出原因
【发布时间】:2018-01-20 05:30:32
【问题描述】:

我收到此错误消息,但我不确定原因。我的控制器操作是:

def create
    @wad = Wad.new(wad_params)
    if @wad.save    
        redirect_to wad_path
    else
        render 'new'
        flash[:error] = "Failed to submit (missing paramters). Please try again!"
    end
end
def index
    @wads = Wad.all
end

我的看法是:

<h1>Page for wads</h1>
<% @wads.each do |wad|%>
<%= wad.problem_state %>
<%= wad.short_form %>
<%= wad.long_form %>
<% end %>

对为什么这不起作用有什么想法吗?

【问题讨论】:

  • 这个错误发生在哪一行?
  • @wads 的值是多少,我认为@wads 会为零?
  • 检查控制台Wad.all,数据库中是否有数据。
  • Wad.all 将返回 [],因此将定义 each
  • 您是否定义了任何覆盖默认行为的方法all..?

标签: ruby-on-rails ruby


【解决方案1】:

如果您收到错误消息 undefined methodeach' 对于 nil:NilClass 那么,问题不在于each,而在于NilClass

您应该检查对象,@wads 在您的情况下。

index方法来看,@wads是调用Wad.all的结果,所以你应该在你的控制台中检查这个语句。确保Wad.all的结果不是nil。

【讨论】:

  • 不是我有两个 wads 实例
猜你喜欢
  • 2013-03-07
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
  • 2020-10-17
  • 2015-07-02
相关资源
最近更新 更多