繁体   English   中英

如何使用Rails在数据库中存储数字数组

[英]How to store an array of numbers in database using rails

我对Rails很陌生,所以这可能是一个愚蠢的问题,但是我花了几个小时调试这个看似简单的错误,却一无所获。 在我的数据库中,我希望每一行都存储一个数字数组(在一个称为“贡献”的变量中)。 我读到最好的方法是添加以下代码:

class Goal < ActiveRecord::Base

  #...

  serialize :contributions, Array

  #...

end

该属性也位于Goal.rb中

ActiveRecord::Schema.define(version: 20150711171452) do

  create_table "goals", force: :cascade do |t|
    #...
    t.decimal  "contributions"
    #...
  end

end

我通过此迁移添加了它:

class AddContributorsToGoals < ActiveRecord::Migration
  def change
    add_column :goals, :contributors, :string
    add_column :goals, :contributions, :decimal
  end
end

唯一的问题是,每当我尝试访问该属性时,总是会收到错误消息,指出它的类型为BigDecimal。 Rails认为这是一个数字,但我希望它是一个数字列表。 关于我可能做错了什么的任何想法?

我遇到的一个问题示例是执行此命令时:

@goal.contributions << @goal.lastUpdateAmount

但是我得到这个错误

undefined method `<<' for #<BigDecimal:7f95e082ab18,'-0.0',9(9)>

我按照相同的步骤使用了字符串数组,并且已正确序列化了。 我只是不知道这是怎么回事。

请更改数据类型十进制为文本

class AddContributorsToGoals < ActiveRecord::Migration
  def change
    add_column :goals, :contributions, :text
  end
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM