Как разрешить доступ только зарегистрированным пользователям, ограничивающим прямой ввод URL? - PullRequest
0 голосов
/ 14 декабря 2011

в приложении Rubyonrails я хочу, чтобы только зарегистрированные пользователи заходили на внутренние страницы?Как я могу перенаправить URL-адреса прямого ввода на страницу индекса?

в php if (! isset ($ _ SESSION [id]) {header ("location: index.php")}, как это можно реализоватьРубин на рельсах

1 Ответ

3 голосов
/ 14 декабря 2011

здесь идет

В application_controller.rb:

Размещение этого кода в application_controller сделает его доступным для всех ваших контроллеров.

class ApplicationController < ActionController::Base
  protect_from_forgery

  protected

def confirm_logged_in
    unless session[:id]
        flash[:notice] = "Please log in"
        redirect_to :root
        return false
    else
        return true
    end
end

end

Затем вы можете использовать этот метод в любом из контроллеров, которые требуют его, например,

Если вам нужно подтвердить, что пользователи вошли в систему для действия show, тогда

class UsersController < ApplicationController
before_filter :confirm_logged_in, :only => [:show]

def show
    #all your code
end

end

должно работать, так как это подтвердит, что пользователи, имеющие доступ к этому URL-адресу, вошли в систему.

Для получения дополнительной информации перейдите по этой ссылке к направляющим рельсов на фильтрах . Также могут быть более эффективные способы достижения этого.

Однако я бы предложил использовать драгоценный камень, такой как Cancan ( Github ), поскольку я использовал это во многих приложениях и хорошо работает. Код, представленный выше, является базовым, и есть много лучших и продвинутых способов справиться с этим, но он должен делать свою работу. Надеюсь, это поможет.

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