Rails 4 - 接受值数组的单个属性

时间:2014-08-11 22:30:18

标签: arrays ruby-on-rails-4 multiple-select

我需要在我的表单中有一个属性(:supported_media_types)接受一个值数组。

例如,我希望用户能够在需要时点击JPG和PNG。

我已经设置了一个select2下拉列表,其中包含多个:true

有没有简单的方法来实现这一点,还是我需要创建一个连接表?

<%= f.select :supported_ad_types, supported_types_of_media, {include_blank: true}, {class: 'filter_select', name: 's2id_location_supported_ad_types[]', style:'width:100%;', placeholder: 'Supported File Types', required: true, multiple: true} %>

2 个答案:

答案 0 :(得分:2)

使用select_tag 'supported_ad_types[]' ...获取数组参数。

在您的模型中使用serializer :supported_ad_types, array来保存数组参数。

答案 1 :(得分:0)

创建一个这样的序列化属性:

1 - 正常向您的迁移添加一列,文字为:

rails g model Image types:text
rake db:migrate

2 - 在你班上:

class Image < ActiveRecord::Base
    serialize :types, Array
end

现在,您可以执行以下操作:

i = Image.new
i.types << "png"
i.types << "jpg"
i.save
=> #<Image id: 1, types: ["png", "jpg"], created_at: "2014-08-11 22:44:08", updated_at: "2014-08-11 22:44:08">