2013-02-05 32 views
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

+0

什么是服务器日志说使用:user? – ByScripts

+2

'@user = User.new(params [:user])'注意用户参数之前的冒号。 –

+0

'@user = User.new(params [user])'是'@user = User.new(params [:user])''?如果它不是一个错字。 –

回答

1

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

在github和Railscasts上签出sorcery。它在覆盖认证方面做得很好。

此外,您还需要在params =>User.new(params[:user])

+0

我发现我的问题,是这样的: before_filter:require_login,:except =>:新 我正在做一个require_login,除了新的,我需要除了:创建太。那么只需编辑这一行 before_filter:require_login,:except => [:new,:create] 这就是它,感谢您的帮助,感谢您的视频,我正在使用巫术;) – xploshioOn

+0

Ryan的视频有点过时。他的大部分代码仍然很适合从视频中使用。不过,关于Sorcery的github页面的文档要好得多。此外,它们还显示了如何处理密码重置的示例。 – kobaltz

+0

我需要重置密码,但有秘密的答案和问题,因为那是要求,但巫术重置密码与电子邮件。 – xploshioOn

相关问题