Ruby on rails 4 Rails-使用自定义路由,而不是传递url参数
一个用户有多个帐户,并且一个帐户属于某个角色。角色可以是“学生”、“管理员”、“讲师” 要查看讲师,我可以执行以下操作:Ruby on rails 4 Rails-使用自定义路由,而不是传递url参数,ruby-on-rails-4,routes,rails-routing,Ruby On Rails 4,Routes,Rails Routing,一个用户有多个帐户,并且一个帐户属于某个角色。角色可以是“学生”、“管理员”、“讲师” 要查看讲师,我可以执行以下操作: /accounts?filter_by=instructors # controller role = params[:role] @accounts = Account.joins{role}.where{ role.name.eq(role) } 我想做的是: /instructors 并且,为每种类型的帐户创建一个路由。我正在努力找出创建这些路线
/accounts?filter_by=instructors
# controller
role = params[:role]
@accounts = Account.joins{role}.where{ role.name.eq(role) }
我想做的是:
/instructors
并且,为每种类型的帐户创建一个路由。我正在努力找出创建这些路线的最佳方法
resources :accounts do
collection do
get "instructors", to: "accounts#index", as: "instructors", default: {filter_by: Role.find_by_name('instructor').id}
end
end
在rails 4路线中,我将如何做到这一点?我猜:
resources :accounts, path: 'instructors', as: 'instructors', filter_by: 'instructors'
或
成功了。有没有办法把它干掉,或者我需要一个帐户的资源,然后是我想要命名路由的每种类型的帐户的资源?
get "/:filter_by",
constraints: { filter_by: /instructors|another_type/ },
to: "accounts#index",
as: "accounts"