设计电子邮件中的客户记录/用户结果不能为空

时间:2013-11-26 04:29:04

标签: ruby-on-rails devise ruby-on-rails-4

我目前正在尝试将访客用户/记录添加到我的应用程序中,并且遇到一些难以设计的问题。我试图按照http://railscasts.com/episodes/393-guest-user-record上的教程进行操作,但如果用户是访客,则在绕过电子邮件,密码和用户名的设计验证时会陷入困境。在大约5点40分的视频教程中,他很快就提到了设计,但我对如何实现这一变化感到很失落。谢谢您的帮助。

更新**这是我的代码。谢谢你的帮助。

这是我在users_controller.rb下的创建操作

def create  
  @user = params[:user] ? User.new(params[:user]) : User.new_guest  
    if @user.save  
      current_user.move_to(@user) if current_user && current.user.guest?  
      session[:user_id] = @user.id  
      redirect_to root_url  
    else  
      render "new"  
  end  
end

以下是我的user.rb

中的代码
validates_presence_of :username, unless: :guest?
validates_uniqueness_of :username, :email, allow_blank: true

以下是启动访客记录的链接

<%= button_to "Try it!", users_path, method: :post %>

我得到的错误是

3 errors prohibited this user from being saved:
Email can't be blank
Password can't be blank
Username can't be blank

1 个答案:

答案 0 :(得分:0)

您可能收到“不能为空”错误,因为不允许通过Devise控制器参数,因为它们未被列为允许的参数?

https://github.com/plataformatec/devise#strong-parameters

检查日志中的“未授权参数”错误,看看是否存在问题。