我需要通过多个名称访问一条路径。在我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
是否有任何正确的方法可以为单个路径设置两个名称?
=================编辑==================== 阐述:
Admin
我使用 Devise gem 来管理 2 种用户的会话、注册、锁定等,我们称之为Guest
. gem 放置得很好,但它要求明确的路线名称才能正常运行。
就我而言,就设计而言,只有注册过程不同,所以我正在尝试构建一个如下所示的结构:
app
controllers
users
admin
registration_controller.rb
guest
registration_controller.rb
session_controller.rb
password_controller.rb
registration_controller.rb
和控制器继承自上面的registration_controller,后者继承自Devise Admin
。Guest
现在,为了正常工作,Devise 需要例如名称guest_user_password
以及admin_user_password
创建或删除密码检索。就我而言,两者都在同一路径下,因此我希望两个名称都重定向到相同的“用户/密码”控制器。
更重要的是,这就是为什么我真的想要令人振奋的原因。是我的观点不应该关心重定向到密码检索控制器时是否正在处理Admin
和路由。Guest
两者都是用户,所以我想同时使用user_password
它们。
因此我的问题。:)
另请注意,正如我写的那样,一切正常。我只是想用“最优雅的方式”来写它。