Как получить URL-адрес продукта в Rails 3 в контроллере.
Например (псевдокод):
def foobar
@product = Product.first
puts @product.url
end
Возможно ли это?
Ответ 1
Предполагая, что модель Product отображается как: ресурсы в вашем файле routes.rb:
def foobar
@product = Product.first
url = product_url(@product)
end
Ответ 2
В дополнение к названному маршруту product_url(@product) вы можете использовать общий url_for(@product) (docs). Это имеет побочный эффект: если у вас есть вложенные или пропущенные маршруты, это короче:
Также обратите внимание, что по умолчанию url_for создает относительные URL-адреса, так же, как product_path, что в зависимости от ваших потребностей может быть хорошим или плохим. Чтобы получить полный URL-адрес, пройдите :only_path => false.