gpt4 book ai didi

ruby-on-rails-3 - 在嵌套资源的子目录中分组 Controller

转载 作者:行者123 更新时间:2023-12-04 00:11:59 24 4
gpt4 key购买 nike

我想在子目录中组织我的 Controller 。下面是一个例子:

路线.rb:

resources :locations do
resources :users
end

我想将我的 Controller 放在适当的子目录中:
app/controllers/locations/users_controller.rb

网址将是(标准):
/locations/1/users
/locations/1/users/new
/locations/1/users/10/edit
...

如果我的路由中有一个命名空间,我可以将我的 users_controller.rb 更改为
class Locations::UsersController < LocationsController
end

但它不适用于嵌套资源,而是出现以下错误:
 Routing Error
uninitialized constant UsersController

更新

如果我添加它,它会起作用:
resources :locations do
resources :users
end
match 'locations/:location_id/users' => "locations/users#index"

但我必须为每个 Action 和嵌套资源添加一个路由......

最佳答案

如果您只想使用那一条路线:

match 'locations/:location_id/users' => "locations/users#index"

这应该出现在可能与该匹配项冲突的任何其他资源/匹配项之前。默认情况下,Rails 路由是自上而下的。
# should be before locations resource
resources :locations do
resources :users
end

或者,如果您想放弃所有嵌套的 users资源转至 locations/users您可以为资源分配一个 Controller 。
resources :locations do
resources :users, :controller => "locations/users"
end

关于ruby-on-rails-3 - 在嵌套资源的子目录中分组 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7583898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com