![](/img/trans.png)
[英]How to store string as array in database column using Ruby on 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.