2017-03-03 12 views
0

私のRails 5アプリケーションでは、私のインスタンスの完全なURLを取得しようとしていますが、url_forをこのSOの質問で示唆したように使用しようとしたとき、 NoMethodError: undefined method 'url_for' for #<Product:0x8646fc0>Rails - モデルで完全なURLを取得するには

Full URL with url_for in Rails

def get_url 
    url = url_for(self) 
end 

Iはまたproduct_url(self)を試みと同様のエラーを受け取りました。

私のインスタンスのURLを取得する適切な方法は何ですか?ありがとう!

答えて

1

ヘルパーメソッドは、ビューまたはデコレータでのみ使用できます。 get_urlをデコレータに定義する方が良いです。

あなたがモデルにヘルパーメソッドを使用したい場合は、してみてください。この

def get_url 
    Rails.application.routes.url_helpers.product_url(self) 
end 
+0

私はこれが動作するようになったが、それは完全なURL 'Rails.applicationを表示するためにホストとonly_pathオプションを追加する必要がありました。 routes.url_helpers.product_url(self、:only_path => false、:host => "www.foo.com") ' – yellowreign

+1

あなたはprotocalも指定できます。このように 'Rails.application.routes.url_helpers.product_url(self、:host =>" www.foo.com "、:protocal => 'https')' – silentfox

関連する問題