Маршруты доступа в ruby после авторизации - PullRequest
0 голосов
/ 29 мая 2020

У меня есть маршруты в routes.rb, например: get 'users/edit/:id'. Я также сделал вход в систему.

Я хочу проверить, вошел ли кто-то в систему, прежде чем он получит доступ к маршруту, поэтому, если мы попытаемся получить доступ к get 'users/edit/:id' без входа в систему, мы перенаправим на экран входа в систему.

Как я могу сделай это? Думаю, мне стоит написать что-нибудь после маршрутов, чтобы проверить, вошел ли пользователь в систему, но я не знаю синтаксиса. Спасибо за ответы

1 Ответ

0 голосов
/ 29 мая 2020

Это можно сделать на уровне контроллера. Вы можете добавить то, что называется before_filter, к своему действию редактирования в контроллере пользователей / редактирования.

class UsersController < ApplicationController
  before_action :require_login, only: [:edit]

  def edit
    # your code here
  end
end

Вы также можете использовать множество гемов аутентификации (например, devise). Ознакомьтесь с разработкой здесь: https://github.com/heartcombo/devise

Это позволяет вам писать такой код:

class MessagesController < ApplicationController
  before_action :authenticate_user!

  def new
    # your code here
  end

end

Надеюсь, это поможет. :)

...