我有一个表单来创建新用户,但不工作

时间:2013-02-05 21:58:58

标签: ruby-on-rails forms login

我在创建用户的表单时遇到问题...这是我的“新”代码

<%= 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

当我创建用户时,这将转到登录表单,并且收到一条消息为空,因为我有一个“if”如果我有消息,这显示我有一些css的div,所以我可以看到一个错误发生了,但这是空的,我有什么不对?我没有看到任何东西......当然,用户没有被创建。 谢谢你的帮助,我是红宝石的新手。抱歉我的英文不好xd

1 个答案:

答案 0 :(得分:1)

问题在于您最有可能引用password_confirmation,这通常是输入标记。你很可能在你的数据库中没有这个字段,因为它只是一个可怕的做法。你在密码吗?

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

此外,您需要在:user =&gt;中使用params User.new(params[:user])