Я хочу изменить то, что происходит в devise, когда пользователь входит в систему. Когда я смотрю на исходный код, слово «ресурс» встречается везде, но я не могу понять, что это за замена. Это относится только к придумыванию и надзору?

def after_sign_in_path_for(resource)
  stored_location_for(resource) ||
    if resource.is_a?(User) && resource.can_publish?
      publisher_url
    else
      super
    end
end
6
Jeremy 27 Ноя 2016 в 07:49

2 ответа

Лучший ответ

Ресурс - это абстракция имени экземпляра пользователя. Его можно настроить в настройках устройства для работы с моделью администратора или любой другой.

По умолчанию это первая роль разработчика, объявленная в ваших маршрутах.

devise :users  # resource is instance of User class
devise :admins # resource is instance of Admin class
7
Alex Kojin 28 Ноя 2016 в 06:31

Ответ Алекса говорит об этом лаконично, но, возможно, не всем это понятно, учитывая комментарий выше:

«Ресурс» - это то, как разработчики хотят обозначать свою «Пользовательскую» модель.

Авторы разработки понимают, что те, кто использует драгоценный камень, захотят, чтобы он был настроен иначе. Некоторые люди захотят называть своих пользователей: Пользователи, другие захотят называть их: пловцы, или игроки в гольф, или президенты, в зависимости от обстоятельств. «Ресурс» - это в основном замена имени пользователей, которые разработчики приложений будут использовать в будущем. Devise не заботится о том, как на самом деле называют пользователей: независимо от того, как он назывался, ваши пользователи будут называться просто «ресурсами». Если бы это было по-другому, то авторам гема пришлось бы заставить разработчиков приложений называть своих пользователей: «Администратор» или «Администратор» - что очень ограничительно и разработчикам это не понравится.

1
BKSpurgeon 5 Ноя 2019 в 23:35