Ruby on rails 如何在控制器中获取对象的url

Ruby on rails 如何在控制器中获取对象的url,ruby-on-rails,Ruby On Rails,我有一个产品型号 如何在控制器中获取Rails3中产品的url 例如(伪代码): 这是可能的吗?假设产品模型映射为:routes.rb文件中的资源: def foobar @product = Product.first url = product_url(@product) end 除了命名路由product\u url(@product)之外,您还可以使用(@product)()的常规url\u。这会产生一个副作用,即如果您有嵌套或命名空间的管线,它会更短: customer_pr

我有一个
产品
型号

如何在控制器中获取Rails3中产品的url

例如(伪代码):


这是可能的吗?

假设
产品
模型映射为:
routes.rb
文件中的资源:

def foobar
  @product = Product.first
  url = product_url(@product)
end

除了命名路由
product\u url(@product)
之外,您还可以使用(@product)()的常规
url\u。这会产生一个副作用,即如果您有嵌套或命名空间的管线,它会更短:

customer_product_url(@customer, @product)
url_for([@customer, @product])

还要注意的是,默认情况下,
url\u会生成相对url,就像
product\u path
一样,这取决于您的需要,可能是好的,也可能是坏的。要获取完整的URL,请传递
:只有
的_path=>false

URL\u也可以生成带名称空间的URL。要实现这一点,请为([:namespace,@product])
执行类似于
url\u的操作。感谢您的回答,如果您不想返回完整的url,只需一个注释
product\u path
,以及
polymorphic\u path
,如果您想在助手中干涸,请参阅
customer_product_url(@customer, @product)
url_for([@customer, @product])