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

标签 ruby-on-rails model-view-controller routing content-management-system namespaces

我已将我的 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/

相关文章:

ruby-on-rails - 如何对 add_column 进行可逆迁移

ruby-on-rails - 更新属性后不保存 ActiveRecord

razor - MVC Javascript 序列化格式

javascript - 如何用参数做 $state.go() ?

ruby-on-rails - 是否可以在不使用 Heroku Toolbelt 的情况下部署 Rails 应用程序?如果是这样,如何?

ruby-on-rails - 给定列号和行号,使用 Axlsx gem 修改特定单元格值

model-view-controller - 响应.重定向和临时数据

java - Grails 无法接收序列化数据

android - 我可以在 Android 中获取路由表条目吗?

ruby-on-rails-3 - 在没有 .htaccess 的情况下在 Heroku 上托管的 Rails3 中强制 'www'