【问题标题】:Ruby: wrong argument type nil (expected Data)Ruby:错误的参数类型 nil(预期数据)
【发布时间】:2011-01-21 16:51:42
【问题描述】:

我收到了错误:

wrong argument type nil (expected Data)

这是我的代码(已更改名称以保护无辜者;)):

old_foos.each do |foo|
  foo.bars.each do |old_bar|
    if new_foo.bars.any? {|new_bar| new_bar.name == old_bar.name} #assume new_foo is properly set
       check = 1
    end
  end
end
if check == 1
  do_something!
end

我怀疑这是一个范围问题,但我不确定。任何指针将不胜感激。谢谢!

这里的目标是检查用户是否提交了任何foos 具有已存在的bar 属性。我为含糊不清道歉,但这是我能做的最好的了。

【问题讨论】:

  • 你有错误的行号吗?可能有助于缩小范围...

标签: ruby-on-rails ruby arrays


【解决方案1】:

如果您的一个 foos(旧的或新的)没有任何 bar...然后您在其上调用 each(或任何?)...您将在 nil 对象上调用 each。这可能是问题所在。 但是行号肯定会有所帮助。你能得到完整的堆栈跟踪吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多