1

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

耙文件:

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

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

  <div class="dropdown" data-init="dropdown">
    <button >Multi Select</button>
    <select name="company_asset_stats[companyID][]" multiple>
      <% allFieldValues('company', 'companyname', 'company').each do |value| %>
        <option value=<%= value[1] %>><%= value[0] %></option>
      <% end %>
    </select>
  </div>

生成的参数格式如下: 参数:{"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]

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

有什么帮助吗?

4

1 回答 1

2

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

于 2013-07-31T19:07:39.367 回答