Ruby on rails 如何将自定义管线添加到refinerycms

Ruby on rails 如何将自定义管线添加到refinerycms,ruby-on-rails,refinerycms,refinery,Ruby On Rails,Refinerycms,Refinery,我需要向refinerycms项目添加一个自定义路径,下面是我如何做到的: mount Refinery::Core::Engine, :at => '/' get 'news/more' => 'refinery::news::items#view_more', as: :news_view_more 现在“rake routes”可以打印正确的路由,但我不能通过refinery.news\u view\u more\u path引用该路径,但是我在refinerycms gem

我需要向refinerycms项目添加一个自定义路径,下面是我如何做到的:

mount Refinery::Core::Engine, :at => '/'
get 'news/more' => 'refinery::news::items#view_more', as: :news_view_more
现在“rake routes”可以打印正确的路由,但我不能通过refinery.news\u view\u more\u path引用该路径,但是我在refinerycms gem源代码中找到了一些类似“refinery.news\u item\u path”的代码,我希望我的自定义路由可以通过这种方式引用


谢谢

我相信,由于您的路由不是RESTFUL的,因此您将无法使用助手来获得您想要的路径。您应该使用RESTFUL路由,或者根据您的需要创建一个助手。

@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
中出现两次,我需要更深入地挖掘…

我花了一些时间来弄清楚。若您在rails应用程序中使用单独的控制器,那个么您可以将路由代码放在路由之上。请记住,路线在炼油厂页面
view/refinery/*.*.
上不起作用。如果您想在refinery页面上添加一些自定义路线,如
view/refinery/*.*
,则可以按照以下代码进行操作

Refinery::Core::Engine.routes.draw do
  devise_for :users
  get 'author' => 'author#index'
end

在您的路由文件中

炼油厂CMS对其路线进行了深度黑客攻击,有大量来自“炼油厂宝石”的补丁,因此所有URL都将通过炼油厂的核心操作进行过滤(如炼油厂::PagesController#show)

其实我没有时间潜水,以上都是我的猜测

因此,如果要添加新路由,只需在那里添加非RESTful路由,例如:

get 'news/more' => 'refinery::news::items#view_more', as: :news_view_more
把这条线放在炼油厂其他路线之前,就行了