Добавление динамических ссылок входа и выхода из системы rails 3.1 - PullRequest
0 голосов
/ 07 марта 2012

У меня есть базовая настройка регистрации и входа в систему, и все, что я хочу знать, - это как добавить ссылку в самом верху моей корневой страницы, которая отображает «Вход» или «Выход» в зависимости отпользователь вошел в систему или нет.

Я пробовал различные методы, которые нашел здесь, но не могу заставить их работать, так как они часто приводят к неопределенным ошибкам метода.

Какой самый простой способ создать это?

Большое спасибо заранее за вашу помощь.

Том

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Немного ответа, но этот Railscast очень помог мне узнать, как работает аутентификация в rails.Railscast - это твиттер-логин, использующий OmniAuth , но процесс практически такой же.Он включает в свой код динамические ссылки, о которых вы спрашивали.

http://railscasts.com/episodes/241-simple-omniauth

0 голосов
/ 07 марта 2012

если у вас есть переменная сеанса, в которой вы сохраняете идентификатор текущего пользователя (я называю его user_id), вы можете сделать это следующим образом:

<% if session[:user_id] %>
  <!-- user is logged in -->
  <%= link_to logout_path %>
<% else %>
  <!-- user is not logged in -->
  <%= link_to login_path %>
<% end %>

, это то, что вы должны изменить:

config/routes.rb:

resources :users

# login stuff
controller :sessions do
    get "login" => "sessions#new"
    post "login" => "sessions#create"
    delete "logout" => "sessions#destroy"
end

app/views/sessions/new.html.erb:
# replace this line
<%= form_tag new_session_path do %>
# with
<%= form_tag login_path do %>

ссылка для входа теперь: <%= link_to "Login", login_path %> ссылка для выхода: <%= link_to "Logout", logout_path, :method => :delete %>

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