【发布时间】:2015-08-01 08:11:08
【问题描述】:
我目前正在使用 Sinatra、ActiveRecord 和 MySQL 开发应用程序。我正在处理注册表单,如下所示:
app.rb:
post '/signup' do
password_salt = BCrypt::Engine.generate_salt
password_hash = BCrypt::Engine.hash_secret(params[:password], password_salt)
@usuarios = User.new(params[:nombre], params[:cedula], password_hash, "admin")
if @usuarios.save
redirect './signup', :notice => "Usuario creado exitosamente."
else
redirect './signup', :error => "Ha ocurrido un error, intente nuevamente."
end
end
视图看起来像这样,signup.erb:
<form id="registro" action="/signup" method="POST">
<fieldset>
<legend>Ingrese sus datos</legend>
<label>Nombre
<input type="text" name="nombre">
</label>
<label>Cédula
<input type="text" maxlength="10" name="cedula">
</label>
<label>Contraseña
<input type="password" name="password">
</label>
<!-- TO-DO:
Dropdown list con los diferentes tipos de usuarios, i.e.: admin, secretario, etc.
-->
<input type="submit" id="registerButton" class="button small">Finalizar registro</a>
</fieldset>
</form>
每当我尝试创建新用户时,都会收到以下错误:
ArgumentError - wrong number of arguments (4 for 0..2)
考虑到我尝试插入值的表有 4 列,我不明白为什么会出现此错误。
任何能帮助我解决这个不便的见解将不胜感激!
提前致谢。
【问题讨论】:
标签: mysql ruby activerecord sinatra