ruby-on-rails - Rails Postgres - 日期时间值不会保存到日期时间列中

标签 ruby-on-rails ruby ruby-on-rails-3 postgresql

我的模型有一个日期时间属性 (Postgres),我试图通过在我的 Rails 应用程序中提交表单来创建新记录。

我提交的表单包含该日期时间属性的 text_field。它以以下格式将日期时间作为参数提交:

"expires"=>"07/17/2013 12:35:26 PM"

但是,一旦它进入我的模型的创建操作中的第一行代码...

def create
  @special_deal = SpecialDeal.new(params[:special_deal])

...大多数时候,@special_deal.expires 将 = nil。只是很少见,它有效。

我不明白为什么会这样。我猜这与在日期时间值中包含上午或下午有关,但我不确定。

参数每次都包含过期值:

    @_params    
{"utf8"=>"✓", "authenticity_token"=>"cl1SwnHOum8d/kiGnwkDsamG5IMbmdnoeFvlY11KpKc=", "special_deal"=>{"title"=>"", "provider"=>"", "description"=>"", "deal_price"=>"", "conditions"=>"", "expires"=>"07/27/2013 14:23:59", "excerpt"=>"", "original_price"=>"", "phone_number"=>"", "street"=>"", "city"=>"", "postal_code"=>"", "state"=>"", "country"=>""}, "commit"=>"Create Special deal", "action"=>"create", "controller"=>"special_deals"}

但@special_deal 不会:

    @special_deal   
#<SpecialDeal id: nil, man_servant_id: nil, category: "", title: "", excerpt: "", description: "", original_price: nil, deal_price: nil, provider: "", product_link: "", conditions: "", phone_number: "", street: "", city: "", postal_code: "", state: "", country: "", public: true, created_at: nil, updated_at: nil, expires: nil, image_file_name: nil, image_content_type: nil, image_file_size: nil, image_updated_at: nil>

最佳答案

它显然会被设置为 nil,因为 params[:special_deal][:expires] 没有有效的格式。无论您的表单是否具有 text_field 或字符串。重要的是您发送的格式,同时创建新的特价商品。 如果您操作过期字段并形成标准日期时间格式,您的代码将起作用。无论是字符串对象还是日期时间对象。

日期时间的标准数据库格式是YYYY-MM-DD HH:MM:SS

因此,在创建新的特价商品之前,您必须操纵过期时间

"expires"=>"07/17/2013 12:35:26 PM"

"expires"=>"2013-07-17 12:35:26"

在操作 Meridiem 时不要忘记考虑它。这将解决您的问题。

关于ruby-on-rails - Rails Postgres - 日期时间值不会保存到日期时间列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17488159/

相关文章:

ruby-on-rails - 在 ruby​​ 中支持两种语法的问题

ruby-on-rails - Ruby on Rails 创建和访问 MySQL 变量

ruby-on-rails - Rails 有很多通过关联如何按 child 的数量排序?

ruby-on-rails - 文章中的 ActionController::UrlGenerationError#edit

ruby-on-rails - 验证或不验证 bool 字段

ruby-on-rails - 为 postgresql on rails 创建用户

ruby-on-rails - rails : get a specific number of random records

ruby-on-rails - Rails 如何根据日期范围创建月份数组

ruby-on-rails - Rails 回形针不显示从 Amazon S3 上传的图像

ruby-on-rails - 在 Rails 中将属性从哈希数组打印到 erb?