0

我创建用户的表单有问题...这是我的“新”代码

<%= form_for @user do |f| %>
  <% if @user.errors.any? %>
    <% for message in @user.errors.full_messages %>
    <div class="alert">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        <%= message %>
    </div>
    <% end %>
 <% end %>
  <div class="field">
    <%= f.label :username %>
    <%= f.text_field :username %>
  </div>
  <div class="field">
    <%= f.label :email %>
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :password %>
    <%= f.password_field :password %>
  </div>
  <div class="field">
    <%= f.label :password_confirmation %>
    <%= f.password_field :password_confirmation %>
  </div>
  <div class="actions"><%= f.submit "Registrarse" %></div>
<% end %>

并在控制器中“创建”

def create
   @user = User.new(params[user])
    if @user.save
      redirect_back_or_to root_url, :notice => "Usuario Registrado Satisfactoriamente!"
    else
      render :new, :notice => "No se ha podido registrar"
    end
end

当我创建用户时,进入登录表单,并收到一条空消息,因为如果我有消息,我有一个“如果”,这会显示一个带有一些 css 的 div,所以我可以看到发生了错误,但是这是空的,我有什么问题?我什么也没看到……当然,用户没有被创建。!感谢您的帮助,我是红宝石的新手。对不起我的英语不好xd

4

1 回答 1

1

问题是您最有可能引用password_confirmation通常是输入标签。您的数据库中很可能没有此字段,因为这将是一种可怕的做法。你在给你的密码加盐吗?

在 github 和 Railscasts 上查看魔法。它在涵盖身份验证方面做得很好。

此外,您需要:userparams=>中使用User.new(params[:user])

于 2013-02-05T22:06:58.510 回答