3

Railscasts のタイム ゾーン エピソード 1に合わせてアプリをセットアップしましたが、実行すると

<%= f.time_zone_select :time_zone, ActiveSupport::TimeZone.us_zones %>

このエラーが発生します

ユーザーの NoMethodError#new

行番号 27 が発生した app/views/users/new.html.erb を表示:

予期していなかったのに nil オブジェクトがあります! Array のインスタンスを期待していたかもしれません。nil の評価中にエラーが発生しました。<=>

27行目は前述の行です。私は本当にこれに行き詰まっています...

4

4 に答える 4

0

そのモデルのtime_zoneという名前のデータベースフィールドはありますか?代わりにタイムゾーンという名前ですか?

次のような移行が必要になります。

add_column :users, :time_zone, :string

それから

rake db:migrate
于 2010-06-12T06:28:44.607 に答える
0

私はまったく同じ問題を抱えています。Rails 2.3.8 に関連しているようです。以前のバージョン (/config/environment.rb でこれを設定して 2.3.4) に戻すと、すべて正常に動作するからです。バグのように見えます。このバグ レポートと結果のパッチでこの問題が解決するかどうかを確認しています: https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4942-activesupporttimezone-incorrectly-stores-bogus-values -in-zones_map#ticket-4942 .

于 2010-07-01T11:11:12.730 に答える
0

はい、これは 2.3.8 のバグで、前述のチケットで修正されています。

これはおそらく、データベース フィールドに保存されたタイム ゾーンが、Rails または TZInfo が認識していたどのタイム ゾーンにも対応していなかったことが原因でした。私たちの場合、誤って HTML エンコーディングのアンパサンドによってつまずいたためPacific Time (US & Canada)Pacific Time (US &amp; Canada). http://github.com/rails/rails/commit/78e4d88c7071c633ee1eb68f49b90719aa198eaaで解決するはずですが、戻って DB にまだ不良データがないことを確認することをお勧めします。

于 2010-07-23T20:33:34.023 に答える
0

これと同じ問題があり、Cucumber テストの 1 つが失敗しました。Rails 2.3.9 (2.3.8 から) にアップグレードし、すべてのテストに合格しました。幸運を!

于 2010-09-18T22:20:55.647 に答える