Что делает сам в рубине на рельсах?

Я езжу по железной дороге, просто тренируюсь на рельсах, и наткнулся на кое-что, что пытаюсь понять.

Я не понял, что делает «я» в методе аутентификации. Поэтому я удалил его и протестировал логин своего приложения, чтобы увидеть, будет ли оно показывать ошибку, и оно действительно появилось:

error:

**NoMethodError in SessionsController#create
undefined method `authenticate' for #<Class:0x00000102cb9000**>

Я был бы очень признателен, если бы кто-нибудь мог объяснить, что именно делает это «Я». Я пытался понять, что именно происходит, но никак не мог осмыслить это.

Метод определен в модели и вызывается в sessions_controller .. Я постоянно удаляю свое приложение и начинаю с нуля, чтобы освоить его, и многие вещи имеют для меня смысл каждый раз, когда я начинаю заново, но Я застрял на «я».

Я просто тот человек, которому нравится понимать, почему что-то работает.

контроллер:

 def create
    user = User.authenticate(params[:email], params[:password])
    if user
      session[:user_id] = user.id
      redirect_to root_path, :notice => "Logged In"
    else
      flash.now.alert = "Invalid credentials"
      render "new"
    end
  end

модель:

 def self.authenticate(email, password)
      user = find_by_email(email)
    if user && user.password_hash ==  BCrypt::Engine.hash_secret(password, user.password_salt)
      user
    else
      nil
    end
  end
6
задан lucapette 22 September 2011 в 19:52
поделиться