gpt4 book ai didi

ruby-on-rails - Mongoid 日期 (DateTime) 字段未正确解析以存储到数据库中

转载 作者:行者123 更新时间:2023-12-04 06:36:01 25 4
gpt4 key购买 nike

我已经遇到这个问题好几天了,找不到任何解决方案。看来我无法更改 Mongoid 文档中字段的日期(& DateTime)格式

class Project
include Mongoid::Document

field :deadline, :type => Date
end

然后我可以这样分配日期:

p = Project.new
p.deadline = "20-10-2011"

但我不能以其他格式分配:

p.deadline = "20/10/2011"
ArgumentError: invalid date
from /Users/pww/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/date.rb:956:in `new_by_frags'
from /Users/pww/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/date.rb:1000:in `parse'
from /Users/pww/.rvm/gems/ree-1.8.7-2011.03@v3/gems/mongoid-2.0.2/lib/mongoid/extensions/date/conversions.rb:18:in `convert_to_time'
from /Users/pww/.rvm/gems/ree-1.8.7-2011.03@v3/gems/mongoid-2.0.2/lib/mongoid/extensions/time_conversions.rb:6:in `set'
from /Users/pww/.rvm/gems/ree-1.8.7-2011.03@v3/gems/mongoid-2.0.2/lib/mongoid/field.rb:109:in `set'
from /Users/pww/.rvm/gems/ree-1.8.7-2011.03@v3/gems/mongoid-2.0.2/lib/mongoid/attributes.rb:182:in `typed_value_for'
from /Users/pww/.rvm/gems/ree-1.8.7-2011.03@v3/gems/mongoid-2.0.2/lib/mongoid/attributes.rb:96:in `write_attribute'
from /Users/pww/.rvm/gems/ree-1.8.7-2011.03@v3/gems/mongoid-2.0.2/lib/mongoid/fields.rb:161:in `deadline='
from (irb):11

问题是我尝试通过多种方式更改 Mongoid Date 的默认格式,包括

Date::DATE_FORMATS[:default] = "%d/%m/%Y"

它确实可以以该格式显示数据,但不能以该格式存储数据。我尝试使用本地化文件如下:

date:
formats:
default: "%d/%m/%Y"
short: "%b %d"
long: "%B %d %Y"

也不行。可能是我不知道如何正确处理,但这可能是 Mongoid 的问题。

我正在使用:

Mongoid (2.0.2)
Rails (3.0.6)
ree (1.8.7-2011.03)

我知道这个 (https://github.com/mongoid/mongoid/issues/53) 这更像是一个日期时区问题。

非常感谢任何帮助和信息。

谢谢。

最佳答案

如果属性被定义为日期,它需要一个有效的日期对象。您应该负责解析值并指定日期。

p = Project.new
p.deadline = Time.Time.strptime("20/10/2011", "%d/%m/%Y")

关于ruby-on-rails - Mongoid 日期 (DateTime) 字段未正确解析以存储到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6152681/

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