Проблема с отображением flash, с залогиванием юзеров.
Вот код(все скопипастено из книжки agile webdev):
Код | class LoginController < ApplicationController def add_user @user = User.new(params[:user]) if request.post? and @user.save flash.now[:notice] = "User #{@user.name} created" @user = User.new end end
def login session[:user_id] = nil if request.post? user = User.authenticate(params[:name], params[:password]) if user session[:user_id] = user.id redirect_to(:action => "index") else flash[:notice] = "Invalid user/password combination" end end end
|
Ошибка "Invalid user/password combination" почему-то отображается на странице админки, которая была создана с помошью scaffold:
Код | class AdminController < ApplicationController scaffold :user end
|
Сообщение об успешном создании юзера не отображается ни где(однако я в админке вижу, что юзверь был успешно создан), а залогиниться вообще не получается. Подскажите в чем дело, пожалуйста. Вот код странички с логином, на всякий случай:
Код | <h1>Login#login</h1> <div class="depot-form"> <%= error_messages_for 'user' %> <fieldset> <legend>Login</legend> <% form_for :user do |form| %> <p> <label for="name">Name:</label> <%= form.text_field :name, :size => 40 %> </p> <p> <label for="password">Password:</label> <%= form.password_field :password, :size => 40 %> </p> <%= submit_tag "Let me in!", :class => "submit" %> <% end %> </fieldset> </div> <p>Find me in app/views/login/login.rhtml</p>
|
Кусок класса Юзверь:
Код | class User < ActiveRecord::Base validates_presence_of :name validates_uniqueness_of :name attr_accessor :password_confirmation validates_confirmation_of :password def validate errors.add_to_base("Missing password") if hashed_password.blank? end def self.authenticate(name, password) user = self.find_by_name(name) if user expected_password = encrypted_password(password, user.salt) if user.hashed_password != expected_password user = nil end end user end
|
p.s. Все нашел ошибку. надо же сначала куда то запостить =) |