【问题标题】:How do you render a rails partial that is outside of a namespace in a view that is inside of a namespace?如何在命名空间内部的视图中渲染命名空间外部的 Rails 部分?
【发布时间】:2011-06-01 21:17:54
【问题描述】:

我有一个“静态”控制器和静态视图,它们是在其视图中不使用 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 是站点地图部分使用的静态页面之一。

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

【问题讨论】:

  • “无路由匹配”错误来自哪里?是不是因为部分站点地图中的链接错误?
  • 这很令人困惑 :) 问题标题都是关于部分和视图,而问题内容似乎是关于路线。

标签: ruby-on-rails nested-routes


【解决方案1】:

怎么样:

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

或者

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 2023-03-13
      • 2013-12-18
      • 1970-01-01
      相关资源
      最近更新 更多