我一直在阅读 rails 和 ruby 教程,并且刚刚开始我的第一个项目。一切顺利,但我在为新用户显示验证错误时遇到问题。这是我的控制器代码:
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
redirect_to ''
else
redirect_to '/signup'
end
end
private
def user_params
params.require(:user).permit(:name, :lastname, :nickname, :email, :password)
end
end
这是我的表格。我省略了除昵称之外的所有输入,因为我正在用它测试验证。
<%= form_for(@user) do |f| %>
<div class='form-group'>
<%= f.text_field :nickname, :placeholder => "User name", :class => "form-control", :required => true, :minlength => "2", :maxlength => "24" %>
<div class="text-danger">
<%= @user.errors[:nickname][0] %>
</div>
</div>
<% end %>
我只是显示第一个相关错误以查看它是否有效,并避免任何会让我怀疑它是否有效的 Ifs。该类的验证是:
class User < ApplicationRecord
has_many :books
has_secure_password
validates :nickname, uniqueness: true
end
当我通过控制台创建一个新用户并尝试使用与另一个不会保存的昵称相同的昵称保存它时,因此验证工作正常。但是视图中没有显示错误,它只是返回到注册表单,仅此而已。我正在使用 ruby 2.2.6 和 rails 5.0.1。如果我缺少任何东西,请告诉我。