如何使用rails控制台将序列化数据插入数据库

时间:2016-08-21 09:55:46

标签: ruby-on-rails database serialization console

我在此链接上的教程中添加了动态表单字段到我的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的数据。

1 个答案:

答案 0 :(得分:0)

您的数据是通过控制台序列化的,但是您传递的是不同的对象,只是普通的哈希值,而在控制器中它是try (BufferedReader inputStream = new BufferedReader(new FileReader("xanadu.txt")); PrintWriter outputStream = new PrintWriter(new FileWriter("characteroutput.txt")) { // your code here } 个对象。

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

ActionController::Parameters