【发布时间】:2016-01-18 19:17:17
【问题描述】:
我正在我的网站上填写注册表单。我输入名字、姓氏、电子邮件、密码和密码确认。当我单击“提交”时,我的表单会清除,并且控制台会告诉我用户已经存在(即使它不存在,并且会向我抛出一条成功消息)。 简而言之:我正在尝试创建一个新用户,并将其保存到我的数据库中。
见下文:
用户存在 (0.2ms) SELECT 1 AS one FROM "users" WHERE "users"."firstname" IS NULL LIMIT 1 (0.1ms) 回滚事务
在布局/应用程序中渲染 users/new.html.erb (2.4ms) 在 136 毫秒内完成 200 次 OK(查看次数:68.4 毫秒 | ActiveRecord:0.9 毫秒)
见下面的代码 - 干杯!
users_controller.rb
class UsersController < ApplicationController
def create
@user = User.new(user_params)
if @user.save
flash[:success] = "You signed up successfully"
flash[:color] = "valid"
redirect_to @user
else
flash[:notice] = "Form is invalid"
flash[:color] = "invalid"
render "new"
end
end
private
def user_params
params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation)
end
def show
@user = User.find(params[:id])
end
def new
end
end
user.rb
class User < ActiveRecord::Base
validates_length_of :password, :in => 6..20, :on => :create
validates :password_confirmation, presence: true, if: -> { new_record? || changes["password"] }
end
new.html.erb
<%= form_for(:user, :url => {:controller => 'users', :action => 'create'}) do |f| %>
<%= render 'shared/error_messages' %>
</br> <%= f.text_field :firstname, placeholder: 'First Name' %>
</br> <%= f.text_field :lastname, placeholder: 'Last Name' %>
</br> <%= f.text_field :email, placeholder: 'Email' %>
</br> <%= f.password_field :password, placeholder: 'Password' %>
</br> <%= f.password_field :password_confirmation, placeholder: 'Confirm Password' %>
<%= f.submit :Register %>
<% end %>
【问题讨论】:
-
更大的跟踪,或者至少有关您正在做什么的信息会很有用......
-
@Smar 我正在填写我网站上的注册表单。我输入名字、姓氏、电子邮件、密码和密码确认。当我单击“提交”时,我的表单被清除,并且控制台告诉我用户已经存在(即使它不存在)。我正在尝试创建一个新用户,并将其保存到我的数据库中。
标签: ruby-on-rails ruby ruby-on-rails-4