【问题标题】:Database value is ["", "5", "1", "2", "8", "6", "9"] in Rails Console is showing as "[\"\", \"5\", \"1\", \"2\", \"8\", \"6\", \"9\"]"?数据库值是 ["", "5", "1", "2", "8", "6", "9"] 在 Rails 控制台中显示为 "[\"\", \"5\", \"1\"、\"2\"、\"8\"、\"6\"、\"9\"]"?
【发布时间】:2017-09-05 10:45:28
【问题描述】:

数据库值为

["", "5", "1", "2", "8", "6", "9"] 

但在 Rails 控制台中显示为:

"[\"\", \"5\", \"1\", \"2\", \"8\", \"6\", \"9\"]" 

任何解决方案可以将其显示为与数组相同?

【问题讨论】:

  • Mysql 没有数组列,上次查了一下。所以你的数据库值不是一个数组,它是一个字符串。
  • serialize :column, Array.
  • 值从何而来(是模型属性还是通过原始 SQL 查询获取?)以及如何将其存储在数据库中?
  • 它是一个模型属性,我使用回调存储了我对值的操作

标签: mysql ruby-on-rails ruby ruby-on-rails-4


【解决方案1】:

看起来你的列被保存为 json

[15] pry(main)> JSON.parse("[\"\", \"5\", \"1\", \"2\", \"8\", \"6\", \"9\"]")
=> ["", "5", "1", "2", "8", "6", "9"]

您可以使用serialize :name_of_that_column, Array,以便在从 db 调用时对其进行解析

你可以查看http://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/Serialization/ClassMethods.htmlf

【讨论】:

    猜你喜欢
    • 2021-05-30
    • 2022-10-08
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    相关资源
    最近更新 更多