导轨路由URL名称助手
-
26-10-2019 - |
题
需要哪些基本设置来确保路由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”。 (或用于“炼油厂”的炼油厂路线。)前缀是因为引擎与应用程序隔离。
解决方案,如果您在炼油厂之外使用路由,则是将nuper_path的前缀与包含命名路由方法的Rails对象前缀
Rails.application.routes.url_helpers.new_admin_news_item_path
不隶属于 StackOverflow