【发布时间】:2017-07-19 01:57:38
【问题描述】:
我没有为我的特殊问题找到任何东西。存在一些相关的问题,但此类问题没有:
Rails 4 match all routes for one controller
One controller for multiple routes
我有以下用户模型:
class User < ApplicationRecord
has_many :customers, foreign_key: :user_id, class_name: 'User'
has_many :users
end
用户可以拥有客户,也可以拥有用户。并且每个用户都可以拥有客户(如果需要,还可以拥有已经可以拥有客户的用户等等)
现在我想为每种类型的用户构建一个控制器。
class UsersController < ApplicationController
def index
@users = User.type_for(params[:type], current_user)
end
end
routes.rb 也很清楚:
resources :users
但我不想要以下路线:
对于用户:/users?type=user
对于客户:/users?type=customer
拥有以下内容会更好:
/users => UserController#index (params[:type] = user
/customers => UserController#index (params[:type] = customer
喜欢一个
resources :users, class_name: 'User', type: :user
resources :customers, class_name: 'User', type: :customer
我刚找到一个类似的
resources :users, :collection => { :customers => :get }
但为此我必须创建 2 种不同的方法(一种用于客户,一种用于用户)
【问题讨论】:
标签: ruby-on-rails routing ruby-on-rails-5