gpt4 book ai didi

ruby-on-rails-3 - 解析表单中文本字段的日期时,如何更改 ActiveRecord 期望的格式?

转载 作者:行者123 更新时间:2023-12-03 20:30:54 25 4
gpt4 key购买 nike

问题

  • 我有一个带有 Date 属性的 Ruby on Rails 模型。
  • 在此模型的表单中,我使用带有 JQuery 日期选择器的单个文本字段来表示此属性(而不是像 Rails 自定义那样为年、月和日提供下拉列表)。
  • 日期选择器使用 mm/dd/yyyy 插入日期格式。
  • Rails 期待日期为 dd/mm/yyyy格式。

  • 例子
  • 如果用户选择 2012 年 3 月 12 日,日期选择器将输入 03/12/2012 ,Rails 将其解释为 2012 年 12 月 3 日。
  • 如果用户选择 2012 年 3 月 20 日,日期选择器将输入 03/20/2012 , 这被 Rails 解释为 的第 3 天第20个月 2012 年。由于该日期不存在,Rails 将其转换为 nil值(value)(我认为)。



  • 如何更改 Rails 在解析此日期文本字段时使用的日期格式?

    笔记:

    1)我不想更改日期选择器插入文本字段的日期格式,

    2)我不是问在 View 中显示我的日期属性。

    最佳答案

    我最初认为这可以通过 Rails 国际化功能解决,但事实证明我错了。

    从 Ruby 1.9 开始,日期解析的标准格式是 dd/mm/yyyy ,以便更好地容纳国际用户。更多详情请见 this SO answer .

    该标准在 Rails 中维护,如 Date.parse现在用于处理来自表单输入的数据。使用 before_validation回调将不起作用,因为该字段将被接收为 nil通过回调方法。

    现在有两个 gem 处理这个特定问题,即 Rails 中的日期解析不遵循 I18n.locale 中的语言环境设置。 .两者似乎都运作良好。

  • delocalize , by clemens - 似乎已成功应用于相当多的项目,并且目前拥有最多的星星。
  • i18n_alchemy作者: carlosantoniodasilva - 这个是最近发布的。作者是 Rails 核心团队成员,在这方面非常活跃。绝对值得一看。
  • 关于ruby-on-rails-3 - 解析表单中文本字段的日期时,如何更改 ActiveRecord 期望的格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15531786/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com