[英]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_path前面加上包含命名路線方法的Rails對象
Rails.application.routes.url_helpers.new_admin_news_item_path
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.