mysql - Rails 和 MySQL : Array winds up with ---[] or --- stored in the DB

标签 mysql ruby-on-rails ruby-on-rails-3

我正在从 XML 流中提取一系列字符串并将它们存储在 mySQL 数据库中(尝试使用 VARCHAR 和 TEXT)。在数据库中每个数组的开头,我得到 --- ,然后是 [] (如果它是空白数组)或值。

Rake 任务代码:

@issue = Array.new  
items.each do |item| #items is the parsed elements from XML
    link_key = item.xpath('key').inner_text
    @issue << link_key
    Rails.logger.debug("Issue: #{@issue.inspect}")
  end

数据库值示例:

“---[]”

-或-

“--- - CR-3528”

不确定还有什么用处。

最佳答案

那是因为您正在序列化一个数组。

处理此问题的一种方法是使用 serialize 将字段标记为序列化 ( docs ):

serialize :issue

参见 this了解更多详细信息。

如果您将值存储为文本,则您不应该看到这一点 - 它只是文本。

关于mysql - Rails 和 MySQL : Array winds up with ---[] or --- stored in the DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8301342/

相关文章:

ruby-on-rails - 如何开始启动 "rvmsudo rails server"命令

ruby-on-rails - 将现有的 Rails 应用程序从 SQLite 迁移到 PostgreSQL

mysql - 从文本字符串中删除网址

mysql - 如何在 MySQL 上不使用 HAVING 进行 COUNT 或类似操作?

ruby-on-rails - 如何在某个字符第二次出现后截断字符串

ruby-on-rails - rails 3 : Optimize database call

ruby-on-rails - 不能让 accepts_nested_attributes_for 工作两层深?

php - mysql 更新查询失败

mysql - 每个派生表必须有自己的别名

ruby-on-rails - 部署到heroku - 未能检测到buildpack nodejs (jasonswett)