我有以下表单字段..
<%= 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位数字,作为整数。
非常感谢任何帮助:)
答案 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验证,以确保它是一个数字,而不是一个字母。