【问题标题】:How to insert serialized data into database using rails console如何使用 Rails 控制台将序列化数据插入数据库
【发布时间】:2016-12-28 00:37:48
【问题描述】:

我按照此链接上的教程向我的 Rails 应用程序添加了动态表单字段 railscastsyoutube和源代码github

使用表单数据创建/更新工作正常。但是,我收到以下错误

undefined method `humanize' for :author:Symbol

例如,当我尝试使用此命令查看使用控制台插入的产品时

Product.create(product_type_id: 1, name: "refactoring", price: 24.99, properties: {author: "Martin Fowler", page_count: 197, paperback: 1 } )

检查数据库我注意到通过控制台插入的数据没有被序列化

通过表单提交的示例数据:

--- !ruby/hash:ActionController::Parameters
author: Martin Fowle
page_count: '197'
paperback: '1'

通过控制台提交的示例数据:

---
:author: Martin Fowle
:page_count: '197'
:paperback: '1'

我怎样才能让它工作?

我需要这个,因为我还希望能够使用来自外部来源的数据(例如来自 API 的数据)来更新产品。

【问题讨论】:

    标签: ruby-on-rails database serialization console


    【解决方案1】:

    您的数据正在通过控制台进行序列化,但您传递的是不同的对象,只是普通哈希,在您的控制器中它是 ActionController::Parameters 对象。

    在控制台中尝试这样的事情:

    Product.create(product_type_id: 1, name: "refactoring", price: 24.99, properties: ActionController::Parameters.new({author: "Martin Fowler", page_count: 197, paperback: 1 }) )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 2011-01-07
      • 2020-04-10
      • 2013-06-20
      • 2023-01-23
      • 1970-01-01
      相关资源
      最近更新 更多