簡體   English   中英

Rails路由url名稱助手

[英]Rails routing url name helpers

確保路由URL名稱助手工作需要哪些基本設置?

例如,在我的路線中,我有以下內容:

Blog::Application.routes.draw do
  resources :news, :as => :news_items, :controller => :news_items, :only => [:show, :index]

  scope :module => "refinery" do
    scope(:path => 'refinery', :as => 'admin', :module => 'Admin') do
      resources :news, :except => :show, :as => :news_items, :controller => :news_items
    end
  end
end

但以下似乎不起作用:

new_refinery_news_url

我繼續得到錯誤

未定義的局部變量或方法`new_refinery_news_url'

所以我很確定我配置應用程序的方式缺少一些東西,主要路由是在Gemfile中添加的RefineryCMS gem中。

有什么想法嗎?

不得不使用main_app.new_refinery_news_url

幫助程序名稱為new_admin_news_item_url

找到所有路線及其輔助方法很簡單。 只需運行rake routes ,你會看到:

          news_items GET    /news(.:format)                   {:action=>"index", :controller=>"news_items"}
           news_item GET    /news/:id(.:format)               {:action=>"show", :controller=>"news_items"}
    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_admin_news_item GET    /refinery/news/new(.:format)      {:action=>"new", :controller=>"refinery/Admin/news_items"}
edit_admin_news_item GET    /refinery/news/:id/edit(.:format) {:action=>"edit", :controller=>"refinery/Admin/news_items"}
     admin_news_item PUT    /refinery/news/:id(.:format)      {:action=>"update", :controller=>"refinery/Admin/news_items"}
                     DELETE /refinery/news/:id(.:format)      {:action=>"destroy", :controller=>"refinery/Admin/news_items"}

使用可安裝的引擎,您始終需要指定“main_app”。 (或者對於Refinery路由“refinery。”)前綴,因為引擎與應用程序隔離。

如果您使用煉油廠以外的路線,解決方案是在named_pa​​th前面加上包含命名路線方法的Rails對象

Rails.application.routes.url_helpers.new_admin_news_item_path

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM