# routes.rb
Rails.application.routes.draw do
get 'order/:order_id/add_item/:item_id' => 'order#item_add', as: :order_add_item
end
我可以调用order_add_item_url(order_id: something, item_id: some_other)
它将返回order/something/add_item/some_other
。
我的问题是,我可以得到“原始”网址吗?所以我想要得到的东西像order_add_item_url
回报order/:order_id/add_item/:item_id
我已经挖成Rails的旅程的内部结构,并获得现场是这样的:
Rails.application.routes.named_routes.routes[:order_add_item].path.source
=> "\\A/pos/order/([^/.?]+)/add_item/([^/.?]+)(?:\\.([^/.?]+))?\\Z"
但它剥离下来的路径的‘原始’版本我写在routes
。没有:item_id
和:order_id
我正在使用Rails 4.2。
尝试[这个答案](http://stackoverflow.com/a/5346350/733721)。它使用'Rails.application.routes.named_routes.helpers(&:to_s)'。这可能会给出所有路线,但应该很容易找出如何输出一个路线。 –
我需要原始路径,而不是辅助方法的列表。 – waza
啊。那么,这值得一试。 –