Rails - 命名空间路由与模块一起使用

时间:2015-03-19 20:10:21

标签: ruby-on-rails ruby routes namespaces

我正在尝试为我创建的CMS构建一些管理表单。我最近将“核心”CMS模型转移到了自己的模块中。我遇到了我的命名路线问题。

我将使用Page模型作为示例。 Page.rb位于/ app / models / cms /:

module Cms
  Class Page < ActiveRecord::Base
    ...page model code
  end
end

在config / routes.rb中我有

namespace :admin do
  resources :things
  resources :otherthings
  scope :cms do
    resources :pages
  end
  ...more routes
end

在我的管理员视图中,我使用的是简单表单。当我尝试使用命名路由时,我开始遇到问题:

=simple_form_for [:admin, @page] do |f|

让我知道:未定义的方法`admin_cms_page_path'

我不确定如何在admin命名空间中路由页面,以便获得可用的命名路由。它应该在范围内吗?这对我来说似乎是合乎逻辑的,但是轨道似乎在扼杀它。

Rails:4.2.0 Ruby 2.2.0

1 个答案:

答案 0 :(得分:0)

原来我一直在寻找:

namespace :admin do
   scope :cms do
     resources: pages, as: "cms_pages"

然而,如果有人有更好的建议,欢迎他们......