我需要为refinerycms项目添加一个自定义路径,以下是我的工作方式:
mount Refinery::Core::Engine, :at => '/'
get 'news/more' => 'refinery::news::items#view_more', as: :news_view_more
现在' rake routes'可以打印正确的路线,但我无法通过refinery.news_view_more_path引用该路径,但是我在refinerycms gem源代码中找到了一些类似'refinery.news_item_path'的代码,我希望我的自定义路由可以这样说。 / p>
谢谢!
答案 0 :(得分:2)
@manosagent,我可以添加这样的路线:
Refinery::Core::Engine.routes.prepend do
get 'news/more' => 'news::items#view_more', as: :news_view_more
get 'notices/more' => 'notices::notices#view_more', as: :notices_view_more
end
但我不明白为什么new/more
在rake routes
出现两次,我需要深入挖掘......
答案 1 :(得分:0)
我相信由于您的路由不是RESTFUL,您将无法使用帮助程序来获取所需的路径。您应该使用RESTFUL路由或根据需要创建帮助程序。
答案 2 :(得分:0)
我花了一些时间才弄明白。如果您在rails应用程序中使用单独的控制器,那么您可以将路由代码放在路由之上。请记住,路线不适用于炼油厂页面view/refinery/*.*
。如果您想在view/refinery/*.*
等精炼网页上添加一些自定义路线,则可以按照以下代码进行操作。
Refinery::Core::Engine.routes.draw do
devise_for :users
get 'author' => 'author#index'
end
在你的路线文件上。
答案 3 :(得分:0)
炼油厂CMS深深地破解了它的路线,来自"炼油宝石的大量补丁",所以所有的网址都将被炼油厂的核心行动过滤(例如Refinery :: PagesController #show )
实际上我没有时间潜水,以上就是我的猜测......
因此,如果您想添加新路由,只需在那里添加非RESTful路由,例如:
get 'news/more' => 'refinery::news::items#view_more', as: :news_view_more
在炼油厂的其他路线之前放这条线,会起作用。