【问题标题】:Rails multi-array format in mysqlmysql中的Rails多数组格式
【发布时间】:2013-09-27 17:20:57
【问题描述】:

有一个有人用 PHP 完成的旧项目,并试图将其转换为 Rails。尝试遍历 rails 中的多个数组时遇到问题。 存储在数据库中的数组如下所示:

a:5:{i:0;s:8:"Director";i:1;s:11:"Shareholder";i:2;s:14:"Vice President";i:3;s:9:"Secretary";i:4;s:9:"Treasurer";}

我正在尝试显示“Director”和“Shareholder”等字符串值。 数据库字段是否需要更改为不同的格式才能工作? 这将如何在 Rails 中完成?

提前谢谢你

【问题讨论】:

  • 是不是来自 PHP 的serialize
  • 不确定。用于创建记录的原始代码不再可用。

标签: php mysql ruby-on-rails


【解决方案1】:

在我看来,这就像 PHP 的 serialize 函数的输出。

如果你有 PHP 或者不介意安装它来帮助数据迁移,那么我会编写一个简短的 PHP 脚本,使用 PHP 的 unserializejson_encode 函数将这些列转换为 JSON:阅读值,unserialize 它,json_encode 结果,写回数据库(全部在 PHP 中)。

之后,您应该可以使用 ActiveRecord 的 serializeJSON as the storage format

class Model < ActiveRecord::Base
  serialize :whatever_it_is_called, JSON
end

如果您在 PHP 领域支持 YAML,也可以使用 YAML(ActiveRecord 的 serialize 的默认设置)。

如果您根本不想接触 PHP,那么您必须为 PHP 的 serialize 格式编写 Ruby 解析器(这似乎在 PHP 文档中有详细记录)并将其连接到 ActiveRecord 的 @987654335 @。

您当然会使用真实数据库的副本来完成所有这些工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多