Rails определяет пучок магии с именованными маршрутами, которые делают помощники для ваших маршрутов. Иногда, особенно с вложенными маршрутами, может немного запутаться, чтобы отслеживать, какой URL-адрес вы получите для заданного метода вызова метода. Возможно ли, используя консоль Ruby, посмотреть, какую ссылку генерирует данная вспомогательная функция? Например, с помощью указанного помощника, такого как post_path (post), я хочу видеть, какой URL-адрес создан.
Rails: проверка вывода помощника пути из консоли
Ответ 1
Вы можете напрямую показать их с помощью rake routes
.
В консоли Rails вы можете вызвать app.post_path
. Это будет работать в Rails ~ = 2.3 и >= 3.1.0.
Ответ 2
вы также можете
include Rails.application.routes.url_helpers
из сеансов консоли для доступа к помощникам:
url_for controller: :users, only_path: true
users_path
# => '/users'
Ответ 3
В консоли Rails приложение переменной содержит объект сеанса, на котором вы можете вызвать помощники пути и URL-адреса как методы экземпляра.
app.users_path
Ответ 4
Вы всегда можете проверить вывод path_helpers
в консоли. Просто используйте помощник с app
app.post_path(3)
#=> "/posts/3"
app.posts_path
#=> "/posts"
app.posts_url
#=> "http://www.example.com/posts"
Ответ 5
Помните, если ваш маршрут имеет разнесение по имени, например:
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>"