Ruby on rails Can';t由rake routes命令指定的访问路径

Ruby on rails Can';t由rake routes命令指定的访问路径,ruby-on-rails,routing,rake,Ruby On Rails,Routing,Rake,我似乎无法正确理解rails 3.1中的路由 (请记住,我正在从事一个依赖于炼油厂cms gem的项目) 在我的路线中,我有以下几点: Blog::Application.routes.draw do resources :news, :as => :news_items, :controller => :news_items, :only => [:show, :index] scope :module => "refinery" do scope(

我似乎无法正确理解rails 3.1中的路由

(请记住,我正在从事一个依赖于炼油厂cms gem的项目) 在我的路线中,我有以下几点:

Blog::Application.routes.draw do

  resources :news, :as => :news_items, :controller => :news_items, :only => [:show, :index]

  scope :module => "refinery" do
    scope(:path => 'refinery', :as => 'refinery_admin', :module => 'admin') do
      resources :news, :as => :news_items, :controller => :news_items
      #resources :news, :except => :show, :as => :news_items, :controller => :news_items
    end
  end
end
rake routes命令的输出为:

news_items GET    /news(.:format)                              {:action=>"index", :controller=>"news_items"}
                              news_item GET    /news/:id(.:format)                          {:action=>"show", :controller=>"news_items"}
              refinery_admin_news_items GET    /refinery/news(.:format)                     {:action=>"index", :controller=>"refinery/admin/news_items"}
                                        POST   /refinery/news(.:format)                     {:action=>"create", :controller=>"refinery/admin/news_items"}
           new_refinery_admin_news_item GET    /refinery/news/new(.:format)                 {:action=>"new", :controller=>"refinery/admin/news_items"}
          edit_refinery_admin_news_item GET    /refinery/news/:id/edit(.:format)            {:action=>"edit", :controller=>"refinery/admin/news_items"}
               refinery_admin_news_item GET    /refinery/news/:id(.:format)                 {:action=>"show", :controller=>"refinery/admin/news_items"}
                                        PUT    /refinery/news/:id(.:format)                 {:action=>"update", :controller=>"refinery/admin/news_items"}
                                        DELETE /refinery/news/:id(.:format)                 {:action=>"destroy", :controller=>"refinery/admin/news_items"}
我的应用程序中的以下代码导致错误:

<%= form_for [:refinery, @news_item] do |f| %>
<% end %>

告诉我以下路径:

undefined method `refinery_news_items_path' for #<#<Class:0x0000010663c480>:0x00000106623980>
未定义的方法“精炼厂新闻项目路径”#
不存在

来自rake-routes命令的任何路径都不起作用。我很有信心,这是一个设定的问题。我实际上是在编写一个插件到DefineryCMS gem,而没有实际使用插件生成器,我只是把它当作一个普通的web应用程序来构建

我的项目是在这里为那些谁愿意采取高峰托管

有人知道可能是什么问题吗?

您将“炼油厂”范围界定为“炼油厂管理”,因此当您进行rake路线时,您得到了
炼油厂管理新闻项目

如果去掉
:as=>“refinery\u admin”
子句,您的路线将返回“正常”

您将“refinery”范围界定为“refinery\u admin”,因此当您进行rake路线时,您得到了
refinery\u admin\u新闻项目


如果去掉
:as=>“炼油厂管理”
子句,您的路线将返回“正常”

看来问题出在炼油厂CMS gem的工作方式上。显然,我不应该立即使用url帮助器,我应该使用以下内容:

main_app.new_refinery_admin_news_item_path

问题似乎出在炼油厂CMS gem的工作方式上。显然,我不应该立即使用url帮助器,我应该使用以下内容:

main_app.new_refinery_admin_news_item_path

不,不是这样。我可能会花些时间弄清楚到底发生了什么事。不,不是这样。我可能会花些时间弄清楚到底发生了什么。