以轨道形式将4个输入保存为1

时间:2013-12-06 00:05:17

标签: ruby-on-rails ruby arrays

我有以下表单字段..

<%= u.password_field 'pin[]', required: true, maxlength: 1, autofocus: true %>
<%= u.password_field 'pin[]', required: true, maxlength: 1 %>
<%= u.password_field 'pin[]', required: true, maxlength: 1 %>
<%= u.password_field 'pin[]', required: true, maxlength: 1 %>

我的数据库中有一个名为pin(类型:integer)的列,我希望将4位数字的引脚保存到这些字段中。它们必须在4种不同的输入中用于设计美学,但我无法将其保存到数据库中。

到目前为止,我收到了错误:

  

没有将符号隐式转换为整数

当我运行以下内容时:

@user.pin = params.merge([:user][:pin_1], [:user][:pin_2], [:user][:pin_3], [:user][:pin_4])

我一直尝试使用join(',')split(','),但我似乎无法获得4位数字,作为整数。

非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

如果你做了

begin
     "#{params[:user][:pin_1]}#{params[:user][:pin_1]}#{params[:user][:pin_1]}#{params[:user][:pin_1]}".to_i
rescue Exception => e
    <error handling here>
end

这应该是诀窍,它很脏但它应该工作。我还会对输入进行一些javascript验证,以确保它是一个数字,而不是一个字母。