gpt4 book ai didi

ruby-on-rails - Rails 命名空间 Controller 问题

转载 作者:行者123 更新时间:2023-12-04 17:05:03 25 4
gpt4 key购买 nike

我已将我的 rails 应用程序拆分为一个管理目录和一个公共(public)目录。

admin 目录位于 Admin::命名空间 (/admin) 中。

当我在 Admin::命名空间和普通根映射区域中创建一个名为 Forums 的 Controller 时,路由似乎为/forums 和/admin/forums 找到了 Admin::Forums Controller 。

所以/admin/forums => "app/controllers/admin/forums_controller.rb"
所以/forums => "app/controllers/admin/forums_controller.rb"

不知道为什么会发生这种情况,根 Controller 是否以某种方式在两个 Controller 之间继承?当我尝试在非管理员论坛 Controller 中执行代码时,没有执行任何操作。

这是我的路线:

  map.resources :forums, :only => [:index,:show] do |forum|
forum.resources :topics, :shallow => true, :only => [:index,:show], :name_prefix => ""
end

map.namespace :admin, :name_prefix => "", :path_prefix => "/admin", :name_prefix => "admin_" do |admin|

admin.resources :forums, :name_prefix => 'admin_' do |forum|
forum.resources :topics, :name_prefix => 'admin_' do |topic|
topic.resources :posts, :name_prefix => 'admin_'
end
end

end

有任何想法吗?

最佳答案

您为主管理命名空间调用指定 name_prefix 两次(这实际上是随机选择一个选项)。此外,您不需要子资源中的 name_prefix 选项。这是我的应用程序中的 - 命名空间中的一些子资源(问题和用户)也是主要资源,没有混淆。

  map.namespace :admin do |admin| 
admin.resources :home, :only => [:index]
admin.resources :questions, :collection => {:edit_by_text => :get, :update_by_text => :post, :import_progress => :post}
admin.resources :users
admin.resources :subjects, :member => {:make_quizzes => :post}
end

关于ruby-on-rails - Rails 命名空间 Controller 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3147254/

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