如何获取路由,即routes.rb文件中当前api的路径

时间:2019-02-01 11:17:25

标签: ruby-on-rails ruby ruby-on-rails-4

我是铁路新手。我的澄清很少,下面列出。

  1. 我已经提到了许多链接和堆栈溢出问题,到处都提到使用 request 并获取有关路径,控制器,操作等的详细信息,但是如果我在route.rb中使用request,则会引发未定义的局部变量或方法错误。

  2. 我在 routes.rb 中使用了约束,并从那里调用了动态约束类别的方法 matches? lib / constraints 目录中定义。在这里, matches?(request)接收到一个名为request的参数,该参数包含有关当前路由的详细信息,该参数值是从哪里发送的?,我对此表示怀疑,因为在route.rn中使用此方法时在 constraint(ClassName)中,我没有区分方法名称(匹配?)或参数 request

我想知道幕后事物的运作方式。

谢谢

3 个答案:

答案 0 :(得分:0)

您在寻找吗

request.url
# => "http://localhost:3000/lists/7/items"
request.path
# => "/lists/7/items"

答案 1 :(得分:0)

如果您有URI:

localhost:3000/users/:id
localhost:3000/users
localhost:3000/users/new
....

您可以做类似

的操作
rake routes | grep user

,以便仅获取其路径名中包含user的文件。

希望这会有所帮助。

答案 2 :(得分:0)

通常,您不访问routes.rb中的当前路径,至少就像您要求访问它时一样。我想您正在寻找的实用工具,在Rails路由器中使用了许多不同的匹配方法和技术。

以下是文档的链接:https://guides.rubyonrails.org/routing.html

你能分享究竟为什么要访问在routes.rb中文件curret路线?