Rails: Проверьте вывод помощника пути из консоли - PullRequest
264 голосов
/ 17 мая 2010

Rails определяет набор магии с именованными маршрутами, которые делают помощников для ваших маршрутов. Иногда, особенно с вложенными маршрутами, может быть немного запутанным, чтобы отслеживать, какой URL вы получите для данного вызова метода вспомогательного маршрута. Можно ли с помощью консоли Ruby увидеть, какую ссылку сгенерирует данная вспомогательная функция? Например, при наличии именованного помощника, например post_path (post), я хочу посмотреть, какой URL сгенерирован.

Ответы [ 5 ]

391 голосов
/ 17 мая 2010

Вы можете показать их с помощью rake routes напрямую.

В консоли Rails вы можете позвонить app.post_path. Это будет работать в Rails ~ = 2.3 и> = 3.1.0.

310 голосов
/ 25 ноября 2012

Вы также можете

include Rails.application.routes.url_helpers

из консоли в сеансах доступа к помощникам

url_for controller: :users, only_path: true
users_path
# => '/users'
21 голосов
/ 10 мая 2014

В консоли Rails переменная app содержит объект сеанса, в котором вы можете вызывать помощники path и URL как методы экземпляра.

app.users_path
10 голосов
/ 20 сентября 2016

Вы всегда можете проверить вывод path_helpers в консоли. Просто используйте помощник с app

app.post_path(3)
#=> "/posts/3"

app.posts_path
#=> "/posts"

app.posts_url
#=> "http://www.example.com/posts"
1 голос
/ 18 февраля 2015

Помните, если ваш маршрут разделен именами, например:

product GET  /products/:id(.:format)  spree/products#show

Тогда попробуйте:

helper.link_to("test", app.spree.product_path(Spree::Product.first), method: :get)

выход

Spree::Product Load (0.4ms)  SELECT  "spree_products".* FROM "spree_products"  WHERE "spree_products"."deleted_at" IS NULL  ORDER BY "spree_products"."id" ASC LIMIT 1
=> "<a data-method=\"get\" href=\"/products/this-is-the-title\">test</a>" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...