ruby - mysql - поле пароля не сохраняется - PullRequest
0 голосов
/ 19 декабря 2018

У меня проблема, которую я никогда не обнаруживал.У меня есть форма для создания нового пользователя, в ней у меня есть поле для сохранения моего пароля с has_secure_password

<div class="row">
  <div class="col-md-4">
    <div class="form-group">
      <%= form.label "Contraseña" %>
      <%= form.password_field :password_digest, class:"form-control", id: :user_password_digest %>
    </div>
  </div>
</div>

Вопрос в том, что все поля сохранены правильно, но поле пароля всегда NULL.

Моя модель:

class User < ApplicationRecord
  has_one :rol

  #attr_accessible :email, :password
  attr_accessor :password_digest

  validates_confirmation_of :password_digest
  #validates_presence_of :password, :on => :createrail
  validates :password_digest, presence: true, length: {minimum: 5}, allow_nil: false
  validates_presence_of :email, :on => :create
  validates_uniqueness_of :email
  has_secure_password

  def self.authenticate(email, password_digest)
    user = find_by_email(email)
    p user
    if user && user.password_digest
      p "Me he logueado"
      user
    else
      p "No hace hash"
      nil
    end
  end

  def logged_in
    !current_user.nil?
  end

Мой контроллер:

def create
@user = User.new(user_params)

p "Parametros"
p user_params
p @user
respond_to do |format|
  if @user.valid?

    @user.active = 1
    if @user.save
      p "El usuario es"
      p @user

      session[:usuario_id] = @user.id
      p "Test"
      p @user.password_digest

      p "EndTest"
      format.html { redirect_to @user, notice: 'Usuario creado correctamente.' }
      format.json { render :show, status: :created, location: @user }
    else
      format.html { render :new }
      format.json { render json: @user.errors, status: :unprocessable_entity }
    end
  end
end  
end

В тесте я вижу, что поле password_digest имеет содержимое, но позже это не такэкономии.Любая помощь?

1 Ответ

0 голосов
/ 19 декабря 2018

Я не знаю, но я думаю, что вы не должны использовать приведенный ниже код, если вы используете rails 4 или более позднюю версию, поскольку существует концепция сильных параметров.один раз проверьте направляющие

attr_accessor :password_digest
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...