Ruby on rails 如何向所有现有管线添加嵌套管线资源

Ruby on rails 如何向所有现有管线添加嵌套管线资源,ruby-on-rails,ruby-on-rails-4,routes,paper-trail-gem,Ruby On Rails,Ruby On Rails 4,Routes,Paper Trail Gem,我正在使用一种叫做纸迹的伟大宝石。我创建了一个名为“历史记录”的页面,该页面将列出任何资源的版本。我的routes文件对每个route都有一个嵌套的资源…这一点都不枯燥 resources :users do get "/history" => "pages#history", as: "history" end 此路径为我提供用户/1/历史记录 resources :companies do get "/history" => "pages#history", as:

我正在使用一种叫做纸迹的伟大宝石。我创建了一个名为“历史记录”的页面,该页面将列出任何资源的版本。我的routes文件对每个route都有一个嵌套的资源…这一点都不枯燥

resources :users do 
  get "/history" => "pages#history", as: "history"
end
此路径为我提供用户/1/历史记录

resources :companies do 
  get "/history" => "pages#history", as: "history"
end
现在我有了公司/1/历史

resources :companies do 
  get "/history" => "pages#history", as: "history"
end

如何使/history作为所有路由的嵌套路由工作,而不使用每个资源的嵌套历史路径填充路由文件?

您可以在块中执行这些类型的操作,以避免反复重复

resources :users, :companies do 
  get "history" => "pages#history", :on => :member
end

有关其他有用信息,请访问。

您是否得到了回答?你也可以发布你的控制器吗?我还没有找到我想要的“rails方式”。我的控制器在这个问题上并不重要……这影响到每个控制器。我采用@jkeuhlen block suggestion的方法是创建一个包含所有模型的数组,然后迭代该数组,将数组中的字符串值转换为符号,并为数组中的每个模型构建一个动态历史路由资源。希望这是有道理的。它有点干净…但是,不是我希望找到的“rails方式”。这比为每条路线将历史资源嵌套在块中要干净一些。我还没有找到任何更干净的…当然,rails似乎有一种更干净的方法来做到这一点。谢谢。我认为这是唯一的“rails方式”来做到这一点。当你有10多个资源时会很混乱,但总比把每个块分开好。