Ruby on Rails: сохранение статуса входа в сеанс. - PullRequest
0 голосов
/ 14 апреля 2011

У меня есть этот admin_controller

  def login
    if request.post?
      if params[:full_name] == "adm" && params[:password] == "123"
        data = { :success => 'true', :msg => "Welcome, #{params[:full_name]}"}
        #redirect_to :action => :welcome
      else
        data = { :failure => 'true', :msg => "Username or Password wrong !"}
      end
      render :text => data.to_json, :layout => false
    end
  end

  def welcome    
  end

, и у меня есть login.js ... все работает!

Как встроить sessions?

Я не понимаю, как могу.Пожалуйста, помогите мне.

У меня есть на странице несколько ссылок, и когда я захожу и нажимаю на ссылку, я получаю другую страницу (New post), отлично!Но если я вернусь, my application хочет, чтобы я снова ввел логин и пароль.И если я ввожу свою ссылку URL (New post), я получаю там без проблем, но это неправильно, должен быть текст что-то вроде: "Log in first"

1 Ответ

1 голос
/ 14 апреля 2011

Краткий ответ:

session[:user_id] = id_of_user_that_just_signed_in

application_controller.rb

class ApplicationController < ActionController::Base
  protect_from_forgery

  helper_method :current_user

  private  
    def current_user  
      @current_user ||= User.find_by_id(session[:user_id]) if session[:user_id]  
    end
end

Длинный ответ: я написал учебник по использованию Omniauth, и в одной части («хранилище сеансов») вы видите обработку сеансов и написание соответствующих помощников: http://www.communityguides.eu/articles/16 (с полным кодом на Github)

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