2011-08-25 106 views
0

我有一个名为product的模型。我想要做的是在我的视图中编写“product.link”,以生成“link_to product.title,product”。我知道我无法在Product.rb文件中定义“链接”方法(因为link_to在那里不起作用),而且我不想在每次创建“link_to product.title,product”时都写入“link_to product.title,product”链接到产品。使用默认链接标签/标题设置link_to

我想知道是否有人可以提出一个理想的方式去实现链接到我的产品的最简单的方法。

我也想知道是否有在轨的方式来设置默认标签字段显示当我写"link_to product"什么,而不是它现在显示:"#<Product:0x105093f20>"

回答

2

添加该做适当的事情一个辅助方法:

# products_helper.rb 
def product_link(product) 
    # Change these to taste 
    link_to product.name, product_path(product) 
end 

现在,在你看来,你可以叫你的观点如下:

product_link product 

至于你的问题约#出现在链接中,这是link_to帮助程序在链接的html部分的对象上调用to_s。如上所述使用助手来定义默认文本。

+0

这个很好用。有没有办法在邮件视图中使用这些辅助方法?现在它只是说“未定义的方法”,如果我在那里使用 – alik

+0

实际上,没关系。我能够通过将此部分添加到我的config/application.rb来解决该问题: config.to_prepare do ActionMailer :: Base.helper“application” end – alik