authlogic в Rails - PullRequest
       12

authlogic в Rails

0 голосов
/ 22 марта 2010

Я использую authlogic gem для аутентификации. Я следовал за шагами в: http://railscasts.com/episodes/160-authlogic

У меня есть следующий код:

# config/environment.rb
config.gem "authlogic"

# models/user.rb
acts_as_authentic

# users_controller.rb
def create
  @user = User.new(params[:user])
  if @user.save
    flash[:notice] = "Registration successful."
    redirect_to root_url
  else
    render :action => 'new'
  end
end

def edit
  @user = current_user
end

def update
  @user = current_user
  if @user.update_attributes(params[:user])
    flash[:notice] = "Successfully updated profile."
    redirect_to root_url
  else
    render :action => 'edit'
  end
end

# user_sessions_controller.rb
def create
  @user_session = UserSession.new(params[:user_session])
  if @user_session.save
    flash[:notice] = "Successfully logged in."
    redirect_to root_url
  else
    render :action => 'new'
  end
end

def destroy
  @user_session = UserSession.find
  @user_session.destroy
  flash[:notice] = "Successfully logged out."
  redirect_to root_url
end

# application_controller.rb
filter_parameter_logging :password

helper_method :current_user

private

def current_user_session
  return @current_user_session if defined?(@current_user_session)
  @current_user_session = UserSession.find
end

def current_user
  return @current_user if defined?(@current_user)
  @current_user = current_user_session && current_user_session.record
end

# config/routes.rb
map.login "login", :controller => "user_sessions", :action => "new"
map.logout "logout", :controller => "user_sessions", :action => "destroy"

У меня все работает, за исключением того, что я хочу, чтобы в сеансе был user_id, чтобы я мог отследить, какой пользователь опубликовал, какой пост, где мне его установить?

Ответы [ 2 ]

1 голос
/ 22 марта 2010

Почему бы просто не использовать идентификатор из вспомогательного метода current_user?

Как: current_user.id

1 голос
/ 22 марта 2010

У вас должен быть идентификатор аутентифицированного пользователя в session["user_credentials_id"]

...