【问题标题】:Time zone validation in Rails 4: Time zone is not included in the listRails 4 中的时区验证:列表中不包含时区
【发布时间】:2025-12-27 04:40:12
【问题描述】:

我试图让我的表单中的时区验证通过,但每次我收到错误消息:

时区不在列表中。

我的模型中有这个:

validates_inclusion_of :time_zone, in: ActiveSupport::TimeZone.zones_map.keys

并以我的形式出现:

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

我似乎找不到任何有用的解决方案,我也试过这个:

validates_inclusion_of :time_zone, :in => ActiveSupport::TimeZone.us_zones.map(&:to_s)

正如本网站先前所建议的那样,验证也没有通过。

任何输入都会很棒——谢谢!

【问题讨论】:

    标签: validation ruby-on-rails-4


    【解决方案1】:

    尝试使用

    validates_inclusion_of :time_zone, in: ActiveSupport::TimeZone.zones_map(&:name)
    

    【讨论】:

    • 不幸的是,这也不起作用:(显然 Rails 4.1 中不再需要 &:name 参数?
    • 查看答案*.com/questions/22950540/…可能对你有帮助