使用Ajax进行Rails身份验证

时间:2017-04-12 21:52:25

标签: javascript jquery ruby-on-rails ajax

我正在尝试发出一个Jquery / Ajax发布请求,以便在我的rails后端创建一个新用户。我的用户模式设置如下。

class User < ApplicationRecord
    before_save { self.email = email.downcase }
    VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i
    validates :email, presence: true, length: { maximum: 255 },
                format: { with: VALID_EMAIL_REGEX },
                uniqueness: { case_sensitive: false }
    has_secure_password
    validates :password, presence: true, length: { minimum: 6 }
end

在我的控制器中,我的创建方法定义如下:

def create
    @user = User.new(params[user_params])    # Not the final implementation!
    if @user.save
      #TODO make view
      redirect_to root_path
    else
      #TODO make error messag 
      redirect_to root_path
    end
  end

用户参数设置为接受密码和电子邮件。

private

    def user_params
      params.permit(:email, :password)
    end

现在我从前端尝试使用Jquery / Ajax注册一个新用户。 我的jquery代码定义如下:

$("#signupBtn").click(function(){
  var email = $("#email_sup").val();
  var password = $("#p_sup").val();
  var passCon = $("#pc_sup").val();

  var d = {
    'email': email,
    'password': password
  };

  $.ajax({
      type: "POST",
      url: "/users",
      data: d    
    }).success(function(json){
        console.log("success", json);
  });

非常自我解释的Jquery调用。现在这是我的主要问题,不知道为什么,但我得到了一个回滚事务。

enter image description here

我可以从控制台创建记录,不知道为什么它无法创建记录。如果有人可以指出我的错误,那将是非常有帮助的。提前致谢。

0 个答案:

没有答案