基本上我的注册表单无效。当我签名时,它表示用户存在
(0.1ms) begin transaction
User Exists (0.2ms) SELECT 1 FROM "users" WHERE LOWER("users"."email") == LOWER('sambam@herpderp.edu') LIMIT 1
(0.1ms) rollback transaction
我不确定问题是什么。以下是我的一些模型代码和控制器代码。
用户模型
class User < ActiveRecord::Base
attr_accessible :name, :email, :password, :password_confirmation, :biography, :avatar
has_secure_password
before_create { generate_token(:auth_token) }
validates :name, presence: true, length: { maximum: 20 }
valid_email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.edu/i
validates :email, presence: true,
format: { with: valid_email_regex },
uniqueness: { case_sensitive: false }
validates :password, length: { minimum: 6}, :on => :create
validates :password_digest, presence: { message: "Password can't be blank" }
validates :biography, presence: true, length: { maximum: 140 }
has_attached_file :avatar, :styles => { :small => "75x75>" }
end
用户控制器
class UsersController < ApplicationController
def new
@user = User.new
end
def show
@user = User.find(params[:id])
end
def create
@user = User.new(params[:user])
if @user.save
redirect_to @user
else
redirect_to current_school
end
end
学校模式
class School < ActiveRecord::Base
attr_accessible :name
end
学校管理员
class SchoolsController < ApplicationController
def create
school = School.find(params[:name])
if school
session[:school_id] = school.id
redirect_to school_path(school)
end
end
def show
@school = School.find(params[:id])
@user =User.new
end
end
注册表格
<%= form_for @user do |f| %>
<%= f.text_field :name, :class => 'modal_signinfield', :placeholder => 'Name' %>
</br></br>
<%= f.text_field :email, :class => 'modal_signinfield', :placeholder => 'Email: Must be .edu' %>
</br></br>
<%= f.password_field :password, :class => 'modal_signinfield', :placeholder => 'Password: Must be at least 6 letters' %>
</br></br>
<%= f.password_field :password_confirmation, :class => 'modal_signinfield', :placeholder => 'Renter Password' %>
<%= f.submit "Sign Up", :class => 'sign_up_button'%>
<% end %>
答案 0 :(得分:3)
由于您的日志显示回滚,因此可以假设回调出现问题,或者在用户模型验证中出现问题。
您似乎已经获得了必需的验证,但您没有在注册表单中输入。
validates :biography, presence: true, length: { maximum: 140 }
要么为new_record设置这个条件吗?或者删除它。
可能值得在表单中显示错误,因此您将看到发生了哪些验证错误。