表单中的time_zone_select的NoMethodError

时间:2010-06-12 06:10:27

标签: ruby-on-rails timezone activesupport

我设置的应用程序与Railscasts Time Zone Episode 1完全一致,但是当我运行

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

我收到此错误

  

用户#new

中的NoMethodError      

显示app / views / users / new.html.erb   第27行提出的地方:

     

当你没有时,你有一个零对象   期待它!你可能已经预料到了   数组的实例。发生错误   同时评估nil。&lt; =&gt;

第27行是上述行。我真的被困在这......

4 个答案:

答案 0 :(得分:0)

您是否有名为time_zone的模型的数据库字段?它被命名为时区吗?

您需要使用以下内容进行迁移:

add_column :users, :time_zone, :string

然后

rake db:migrate

答案 1 :(得分:0)

我有完全相同的问题。它似乎与Rails 2.3.8有关,因为如果我恢复到我之前的版本(2.3.4,通过在/config/environment.rb中设置它),一切正常。看起来像个bug。我正在查看此错误报告和生成的补丁是否能解决此问题:https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4942-activesupporttimezone-incorrectly-stores-bogus-values-in-zones_map#ticket-4942

答案 2 :(得分:0)

答案 3 :(得分:0)

我遇到了同样的问题,导致我的一次黄瓜测试失败。我升级到Rails 2.3.9(从2.3.8开始)并且所有测试都通过了。祝你好运!