Ruby on rails 如何获得不奇怪的轨道路线

Ruby on rails 如何获得不奇怪的轨道路线,ruby-on-rails,ruby-on-rails-3,routes,rack,Ruby On Rails,Ruby On Rails 3,Routes,Rack,我正在寻找一种方法来获得原始的未解释的Rails路线 假设我有一条路线: /data\u model/23455 cooltitle/sub\u models 访问时,我希望获得原始路线,参数如下: /data\u model/:model\u id/submodels我有点不清楚您想要什么,但我假设您的意思是,给定一个字符串,表示映射到我们其中一条路由的路径,您希望返回一个字符串,其中路径段参数由它们的标识键替换。您可以按如下方式执行此操作: def uninterpret(path) p

我正在寻找一种方法来获得原始的未解释的Rails路线

假设我有一条路线:

/data\u model/23455 cooltitle/sub\u models

访问时,我希望获得原始路线,参数如下:


/data\u model/:model\u id/submodels

我有点不清楚您想要什么,但我假设您的意思是,给定一个
字符串
,表示映射到我们其中一条路由的路径,您希望返回一个
字符串
,其中路径段参数由它们的标识键替换。您可以按如下方式执行此操作:

def uninterpret(path)
  path_params = Rails.application.routes.recognize_path(path)
  path_params.each do |key, value|
    path.sub!(value, ":#{key}")
  end
  path
end

我肯定有一些边缘案例没有解释,但这应该适用于您的标准资源路线。

我有点不清楚您想要什么,但我假设您的意思是,给定一个
字符串
,表示映射到我们其中一条路线的路径,您希望返回一个
字符串
,其中路径段参数由其标识键替换。您可以按如下方式执行此操作:

def uninterpret(path)
  path_params = Rails.application.routes.recognize_path(path)
  path_params.each do |key, value|
    path.sub!(value, ":#{key}")
  end
  path
end

我肯定有一些边缘案例未被解释,但这应该适用于您的标准资源路线。

用于什么目的?这似乎是一个非常奇怪的请求。在一个非常高的层次上。我有一个第三方服务,其中包含我们希望映射到rails应用程序特定部分的数据。我们可以用字符串标记第三方服务中的数据。然后,我们的rails应用程序使用这些字符串检索数据。使用控制器/动作名称过于笼统,不能始终与我们的路由一一对应。我想将数据映射到原始路线,而不是解释路线,以覆盖整个路段或路线。目的是什么?这似乎是一个非常奇怪的请求。在一个非常高的层次上。我有一个第三方服务,其中包含我们希望映射到rails应用程序特定部分的数据。我们可以用字符串标记第三方服务中的数据。然后,我们的rails应用程序使用这些字符串检索数据。使用控制器/动作名称过于笼统,不能始终与我们的路由一一对应。我想将数据映射到原始路线,而不是解释路线,以覆盖整个路段或路线。