我的模板中有这个:
<%= f.hidden_field :user_ids, multiple: true, value: 1 %>
<%= f.hidden_field :user_ids, multiple: true, value: 2 %>
在控制器上我有这个来确保数组是一个整数数组。我测试了它并且工作正常:
before_filter :parse_json_request
def parse_json_request
params[:keepcon_settings_users_group][:user_ids] = params[:keepcon_settings_users_group][:user_ids].map(&:to_i) if params[:keepcon_settings_users_group][:user_ids]
end
问题是数据存储为yaml但是采用以下格式:
---
- '1'
- '2'
我需要这样:
---
- 1
- 2
我的课程是:
class UsersGroup < ActiveRecord::Base
belongs_to :account_setting
serialize :user_ids, Array
attr_accessible :name, :user_ids
after_initialize :set_defaults
def set_defaults
if !self.user_ids or self.user_ids == ''
self.user_ids = []
end
end
end
答案 0 :(得分:3)
我认为来自HTML表单的传入数据总是以字符串形式发送。您可以通过在每个参数上调用to_i
来修复它,如下所示:
user_ids.map!(&:to_i)