2016-10-24 14 views
1

このコードは突然動作を停止し、なぜわかりません。 ?未定義のメソッド "httpdate" for "...":文字列

class MyClass < ApplicationController 
    ... 
    def method 
    @myobject = @my_objects.order(:updated_at).last 
    if stale?(@myobject) 
     ... 
    end 
    end 
end 

古くなった場合は、問題がである(@ MyObjectに)とエラーがMyClassの#で

NoMethodErrorは2016年10月23日20」のための

未定義のメソッドを `httpdate」my_methodです。 44:26 UTC ":文字列

actionpack(5.0.0.1)のlib/action_dispatch/HTTP/cache.rb:64:


` LAST_MODIFIED =」で

class MyClass < ApplicationController 
    ... 
    def my_method 
    @myobject = @my_objects.order(:updated_at).last 
    t = Time.parse(@myobject.updated_at) 
    if stale?(etag: @myobject, last_modified: t) 
     ... 
    end 
    end 
end 

しかし、最初のバージョンはAPI docによってあまりにも動作するはずですし、それが働いた:問題

は、コードを交換することによって解決されました!

最初のバージョンが動作しない原因を理解して問題を解決したいと思います。私が最近変更したのは - Debianパッケージのアップグレードですが、これが原因だとは思いません。


OS:のDebian GNU/Linuxの8.6(ジェシー)

Rubyのバージョン:ルビー2.3.0 [x86_64の(RVM)

レールバージョン:5.0.0.1

答えて

0

この日時フィールドが原因である可能性があります。これを使うときは、time.parseをtime、date.parseをdateのために解析する必要があります。タイムゾーンも一つの大きな問題です。

これについては、rails Docを参照してください。

関連する問題