我正在尝试在 Ruby on Rails 中创建一个注册表单。
我的表单当前表单如下所示:
<%= form_for @util, :remote => true do |f| %>
<div class="register-form">
<div class=form-name>
<span>Name </span>
<span><%= f.text_field :name %></span>
</div>
<div class=form-surname>
<span>Surname </span>
<span><%= f.text_field :surname %></span>
</div>
<div class=form-email>
<span>E-mail </span>
<span><%= f.text_field :email %></span>
</div>
<div class=form-password>
<span>Password </span>
<span><%= f.text_field :password %></span>
</div>
<div class="submit">
<%= f.submit "Register" %>
</div>
</div>
<% end %>
我创建它的控制器如下所示:
def create
@user = User.new(params[:util])
@user.password = encrypt_password(@user.password)
if @user.save!
respond_to do |format|
format.json { render :partial => "partials/form.html.erb", :task => @task }
end
end
end
当我在调试期间检查变量时,我可以看到结果@user.password
为零,但是如果我手动检查它,因为@user.password
它给了我输入的内容。当我尝试将新用户保存在数据库中时,它总是有一个零密码。
即使参数和加密正确,为什么密码总是为零?
编辑:
感谢您对代码和密码安全字段问题的帮助。我已经忘记了,在回复后查看模型后,我发现了一些问题:
class User < ActiveRecord::Base
attr_accessible :email, :name, :password, :surname
has_and_belongs_to_many :projects
attr_accessor :password
删除后attr_accessor
,我设法访问密码并毫无问题地保存在数据库中。