我想在我的数据库字段中存储多个值(整数)。为此,我使用
serialize :subtype, Array
每当我提交表单时,我都会获得子类型
的参数"subtype"=>["",
"1",
"3"],
现在我尝试将此值保存到我的数据库中。所以我尝试做那样的事情
@request.subtype << params[:subtype][1] << params[:subtype][2]
@request.save
当然它不起作用。我怎样才能做到这一点?如何存储这些值。 这是我的迁移:
create_table :requests do |t|
....
t.integer :subtype
....
t.timestamps null: false
end
<%= f.grouped_collection_select :subtype,
RequestType.order(:typeName), :RequestSubTypes, :typeName, :id, :subTypeName,
{include_blank:false},{:class => "subTypes", multiple: true } %>
答案 0 :(得分:1)
序列化字段不能是integer
类型。所以将其更改为text
类型
运行此迁移
rails g migration add_subtype_to_requests subtype:text
class Migration000000
def change
add_column :requests, :subtype, :text
end
end
然后这应该适合你
@request.save
修改强>
在你的控制器中允许子类型数组
def request_params
params.require(:request).permit(:field1, :field2, :subtype => [])
end
答案 1 :(得分:0)
您无需附加到列,只需执行此操作:
@request.subtype = params[:subtype].reject { |st| st.blank? }
@request.save
由于sub_type是一个数组,所以您需要这样做。