【发布时间】:2015-02-20 03:10:59
【问题描述】:
编辑:已解决,我不得不将序列化列从整数类型更改为文本类型,因为 int 不适用于序列化。
保存到我缺少的数据库有什么问题吗?我正在尝试将数组保存到数据库列。我正在使用序列化,以便可以在一列中存储多个团队 ID。如果我在 Rails 控制台中执行此操作,它可以工作,但当我从我的模型中执行此操作时,它似乎不起作用。
以下是 Rails 控制台中的工作原理:
match_entry = Match.new
match_entry.team_ids << 1
match_entry.team_ids << 2
match_entry.save
保存后,我看到 match_entry.team_ids 包含 [1, 2]。以下是我的模型中不起作用的内容:
file.each_line do |line|
if line.include?("team_ids")
str = line.sub("team_ids:", "").chomp
arr = str.split(",")
match_entry.team_ids << arr[0].to_i
match_entry.team_ids << arr[1].to_i
end
end
match_entry.save
match_entry.team_ids 甚至可以正确返回 [1, 2],但它似乎并没有真正保存到数据库中。它将保存到数据库中,而 team_ids 没有任何值。
【问题讨论】:
-
什么版本的导轨?
-
@FrederickCheung,这是 Rails 4.2.0 rc1
标签: ruby-on-rails ruby ruby-on-rails-4 mysql2