Мне нужно, чтобы один путь был доступен через несколько имен. В моем routes.rb
я сделал
get '/route' => 'controller#edit', :as => 'name_a'
get '/route' => 'controller#edit', :as => 'name_b'
Это работает красиво, но загружает таблицу маршрутов ни для чего. Из моего понимания документации :as
определяет вспомогательный метод при вызове.
Итак, я пошел в мой ApplicationController
и добавил
alias_method :name_b, :name_a
и я удалил вторую строку из routes.rb
но с ошибкой Uncaught exception: undefined method name_a for class ApplicationController
есть ли правильный способ иметь два имени для одного пути?
================= EDIT ==================== Разработка:
Я использую Devise gem для управления сеансом, регистрации, блокировки и т.д. из 2-х видов пользователей, позвоните им Admin
и Guest
. Драгоценный камень очень хорошо вставлен, но он просит правильные имена маршрутов вести себя правильно.
В моем случае, что касается разработки, только процесс регистрации отличается, поэтому я пытаюсь создать структуру, которая выглядит следующим образом:
app
controllers
users
admin
registration_controller.rb
guest
registration_controller.rb
session_controller.rb
password_controller.rb
registration_controller.rb
контроллеры Admin
и Guest
наследуют от указанного регистрационного_контроллера, которые наследуют от Devise.
Теперь, чтобы нормально работать, Devise нуждается, например, в именах guest_user_password
и admin_user_password
, чтобы создавать или удалять извлечения пароля. В моем случае оба находятся под одним и тем же путем, поэтому я хочу, чтобы оба имени перенаправлялись к одному и тому же контроллеру "пользователи/пароль".
Что еще важнее, и почему я действительно хотел сфальсифицировать. Является ли то, что мои взгляды не заботятся о том, работает ли он с маршрутами Admin
и Guest
при перенаправлении на контроллер поиска паролей. Оба пользователя, поэтому я хочу использовать user_password
для обоих.
Отсюда мой вопрос.:)
Также обратите внимание, что, как я ее написал, все работает. Я просто пытаюсь получить "самый элегантный способ" его написания.