2012-10-02 44 views
0

時,我得到以下異常頻繁,因爲在開始使用validates_timeliness寶石異常使用validates_timeliness寶石

Message undefined method `<' for nil:NilClass 
    Location /client_issue/create?client_id=15285 
    Action create 
    Controller client_issue 
    Query client_id=15285 
    Method POST 
    SSL true 

如果他們使用正確的三個字母的月份,如果有人進入日期如9月28日2012年發生異常(即2012年9月28日)沒有問題。 事實上任何無效的月份名稱會導致bjhg 2012

例如28除繼承人的堆棧跟蹤的頂部

/shared/bundle/ruby/1.8/gems/timeliness-0.3.6/lib/timeliness/parser.rb:142:in `fast_date_valid_with_fallback' 
    /shared/bundle/ruby/1.8/gems/timeliness-0.3.6/lib/timeliness/parser.rb:24:in `make_time' 
    /shared/bundle/ruby/1.8/gems/timeliness-0.3.6/lib/timeliness/parser.rb:17:in `parse' 
    /shared/bundle/ruby/1.8/gems/validates_timeliness-3.0.14/lib/validates_timeliness/attribute_methods.rb:49:in `start_date=' 
    /shared/bundle/ruby/1.8/gems/activerecord-3.2.8/lib/active_record/attribute_assignment.rb:85:in `send' 
    /shared/bundle/ruby/1.8/gems/activerecord-3.2.8/lib/active_record/attribute_assignment.rb:85:in `assign_attributes' 

我的模型模型的相關位看起來是這樣的:

class ClientIssue < PauaServiceTable 
     validates_date :start_date ,:allow_blank => true 
     ... 
    end 

我對創業板初始值設定中有以下:

config.restriction_shorthand_symbols.update(
     :now => lambda { Time.current }, 
     :today => lambda { Date.current } 
    ) 
    config.parser.remove_formats(:date, 'm/d/yy') 
    config.parser.remove_us_formats 
    config.parser.use_euro_formats 

我不明白爲什麼我會收到異常。我應該能夠通過任何舊垃圾,只是得到一個無效的日期信息,而不是一個例外。 我有錯誤的設置了嗎?

回答

0

該問題似乎是時效性問題。 查看我的問題的答案here

但是,由於任何不正確的月份名稱導致異常(例如28 sap 2012)也會引發異常。我決定對日期進行手動驗證,否則我的用戶會一直遇到異常情況。

+0

該寶石現在已經更新,以修復bug – giorgio

0

您正在使用提供validates_date方法的validates_timeliness gem和引發錯誤的timeliness gem。

你可能會使用,而不是兩者。