Ruby on rails 检查验证时将空记录写入数据库

Ruby on rails 检查验证时将空记录写入数据库,ruby-on-rails,Ruby On Rails,我有一个带有验证的模型: attr_accessor :name, :username, :email, :password validates :name, :presence => { allow_blank: false, message: "Имя не может быть пустым" } validates :username, :presence => { allow_blank: false, message: "Имя пользователя не може

我有一个带有验证的模型:

attr_accessor :name, :username, :email, :password

validates :name, :presence => { allow_blank: false, message: "Имя не может быть пустым" }
validates :username, :presence => { allow_blank: false, message: "Имя пользователя не может быть пустым" }
validates :email, :presence => { allow_blank: false, message: "Эл. адрес не может быть пустым" }
创建def:

def create
@user= User.new(user_params)
if @user.save
redirect_to "http://bookworm.az:3000"
else
        session[:name] =@user.name
        session[:username] =@user.username
        session[:email] =@user.email

        error =@user.errors.to_a.to_sentence(two_words_connector:',')
        delimeter = error.split
        error = error.gsub(delimeter[0], '')

        show_error = error.split(",")

        flash[:notice] = show_error[0]
        redirect_to :back
end
end
当我删除所有验证并检查所有时,它会将用户保存在数据库中。但使用验证日志打印:

INSERT INTO "users" DEFAULT VALUES RETURNING "id"
有什么问题

更新

def user_params
    params.require(:user).permit(:name, :username, :email, :password)
end

attr\u访问器
正在覆盖rails属性。尝试删除它,它应该工作


阅读类似问题的说明。

您能键入
user\u params
方法吗?当然!我添加了user_params方法