如何在名称空间内的视图中呈现位于命名空间之外的rails部分?

时间:2010-12-31 05:47:53

标签: ruby-on-rails nested-routes

我有一个'静态'控制器和静态视图,这些视图是在视图中不使用ruby的页面。对于这些页面,我有一个以编程方式生成并在应用程序布局文件中使用的站点地图部分。命名空间路由仍然使用应用程序布局文件,但是也采用静态路由并尝试命名它们。

以下是路径文件的相关部分:

namespace :admin do
  resources :verse_categories
  resources :verses
  resources :songs
  resources :flowers
  resources :visits, :except => [:new, :create]
end
match ':action' => 'static'
root :to => 'static#home'

这是我得到的错误:

No route matches {:controller=>"admin/static", :action=>"about"}

请注意,about是站点地图部分使用的静态页面之一。

那么,我如何解决这个路由问题,以便它不会试图在管理命名空间内找到我的静态网站?任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

怎么样:

namespace :admin do
  ... 
  get "/about" => "static#about"
end

scope "/admin" do
  get "/about" => "static#about"
end

答案 1 :(得分:0)

gist说明了如何将目录添加到命名空间目录的搜索路径中。我最终做了以下事情:

class Static::BaseController < ApplicationController
  def self._prefixes
    super | ["other_directory"]
  end
end