gpt4 book ai didi

ruby-on-rails - "Attribute was supposed to be a Hash, but was a String"

转载 作者:行者123 更新时间:2023-12-04 03:41:18 26 4
gpt4 key购买 nike

我在 Rails 3 应用程序中保存哈希时遇到问题。使用控制台时我可以保存它 - 当我通过表单提交哈希时它不起作用。

This SO question addresses它但解决方案对我不起作用。此外,如果我使用:

 serialize :bulk_action, Hash

我收到错误:
 Attribute was supposed to be a Hash, but was a String

通过表单保存时的散列如下所示:
 "{\"location\"=>{\"commands\"=>{\"custom_command_one\"=>\"true\", \"custom_command_two\"=>\"true\"}}}"

而通过控制台:
{"location"=>{"commands"=>{"custom_command_one"=>"true", "custom_command_two"=>"true"}}}

我的数据库字段是一个文本字段。通过表单保存散列的最佳方法是什么?

- 编辑 -

我发现如果我使用符号而不是字符串作为名称,我可以解决这个问题,但它仍然输出一个长字符串,而不是散列。

最佳答案

你能不能在 textarea 中切换到 JSON,这样解析它就不会那么危险了。因为您需要做的是评估 Controller 或模型中的相应 params 条目,使用户可以对运行您的应用程序的用户执行任何他们想做的事情。使用 JSON,你可以只使用 JSON.parse在设置模型属性之前。

关于ruby-on-rails - "Attribute was supposed to be a Hash, but was a String",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16638979/

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