Rails在参数中序列化整数属性,但不保存到模型实例中

所以我有以下模型,其中包含序列化的整数属性

耙文件:

class CreateCompanyAssetStats < ActiveRecord::Migration def change create_table :company_asset_stats do |t| t.integer :companyID t.string :geo t.integer :assetType t.date :startTime t.date :endTime t.timestamps end end end 

模型:

 serialize :companyID, Array serialize :assetType, Array serialize :geo, Array 

在我看来,我有一个表单,我有一个多选下拉列表,将值存储到params中:

   

生成的参数格式如下:参数:{“utf8”=>“✓”,“authenticity_token”=>“2WFx3 / 3TyHsjobwRaLJYW2jt4JR5ucvtgyBK3IxKTqs =”,“company_asset_stats”=> {“startTime”=>“2013-07-31T00 :00-07:00“,”endTime“=>”2013-07-31T00:00-07:00“,”companyID“=> [”1864“]},”commit“=>”创建“}

最后我的创建控制器执行以下操作:

 def create @company_asset_stats = CompanyAssetStats.new(params[:company_asset_stats]) if @company_asset_stats.save redirect_to :action => "index" else render 'new' end end 

然而,当我被重定向到我的模型的索引时,我看到companyID总是保存为0而assetType根本没有。 我也尝试过以下方式手动设置属性:

 @company_asset_stats.companyID = [1,2,3] 

但我在索引中得到相同的显示。

有帮助吗?

您似乎在数据库中有一个t.integer :companyID 。 序列化属性不能进入整数列,而是需要文本列。