【发布时间】:2013-12-10 10:47:43
【问题描述】:
我有一个资源,比如Product,它可以被两个不同的用户类访问:比如Customer 和Admin。这两者之间没有继承关系。
我正在使用 Devise 进行身份验证:
# config/routes.rb
devises_for :customers
deviser_for :admins
我有这两个控制器:
# app/controllers/customers/products_controller.rb
class Customers::ProductsController < ApplicationController
和
# app/controllers/admins/products_controller.rb
class Admins::ProductsController < ApplicationController
现在取决于谁登录(Customer 或Admin),我希望products_path 指向相应的控制器。而且我想避免customers_products_path 和admins_products_path,这很混乱。
所以我已经设置了我的路线
# config/routes.rb
devise_scope :admin do
resources :products, module: 'admins'
end
devise_scope :customer do
resources :products, module: 'customers'
end
这不起作用。当我以Customer 登录时,products_path 仍然指向Admins::ProductsController#index,因为它是第一个定义的。
有什么线索吗?如果没有黑客攻击,我想做的事情可能根本不可能。
更新 按照the code的说法是不行的。
【问题讨论】:
标签: ruby-on-rails devise routes