【问题标题】:How to debug an wrong number of arguments (1 for 0) in Rails error?如何在 Rails 错误中调试错误数量的参数(1 代表 0)?
【发布时间】:2010-07-13 18:30:36
【问题描述】:

我试图做一些重构和搞砸的事情,但现在不知道在哪里或如何调试,因为不清楚问题出在哪里。

一些关于如何挖掘错误和代码的建议会很有帮助...谢谢!

http://gist.github.com/474290

【问题讨论】:

    标签: ruby-on-rails arguments


    【解决方案1】:

    在这种特殊情况下,您可能会调用 .to_s 来调用您期望的 DateTime 但实际上是 nil:

    datetime = DateTime.now
    datetime.to_s(:default)
    # => "2010-07-13T14:35:07-04:00"
    
    datetime = nil
    datetime.to_s(:default)
    # => ArgumentError: wrong number of arguments (1 for 0)
    

    如果是这种情况,要么追踪丢失的日期并填充它,要么仅在日期存在时才呈现它。

    【讨论】:

    • 明白了,我想就是这样......我应该只做一个 datetime.nil 吗?确保不会发生这种情况?我以为我的代码有....
    • 避免这种情况的最简单方法是在渲染任何如果为 nil 时可能表现不佳的变量之前进行测试。例如:datetime && datetime.to_s(:default)
    【解决方案2】:

    我不知道这是否相关,但这条线看起来很奇怪:

    <%= render :partial => "contact_event_list", 12: :locals => {:contact_event => contact_event, :event => event} %>
    

    中间的“12:”,在 :locals 之前,看起来不合适。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 2011-11-08
      • 2016-12-16
      • 1970-01-01
      相关资源
      最近更新 更多