2017-03-03 3 views
0

In meiner Rails 5 App versuche ich, die vollständige URL für meine Instanz zu bekommen, aber als ich versuchte, url_for wie in dieser SO Frage vorgeschlagen zu verwenden, erhalte ich einen Fehler, NoMethodError: undefined method 'url_for' for #<Product:0x8646fc0>.Rails - So erhalten Sie die vollständige URL im Modell

Full URL with url_for in Rails

def get_url 
    url = url_for(self) 
end 

Ich habe auch versucht product_url(self) und einen ähnlichen Fehler erhalten.

Wie bekomme ich die URL für meine Instanz? Vielen Dank!

Antwort

1

Hilfsmethode ist nur in Ansicht oder Dekorateur verfügbar. ist es besser, get_url im Dekorateur zu definieren.

wenn Sie Helper-Methode im Modell verwenden mögen, versuchen Sie dieses

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

Ich habe dies zu arbeiten, hatte aber den Host und only_path Optionen hinzuzufügen, die gesamte URL 'Rails.application zu zeigen. routes.url_helpers.product_url (self,: only_path => false,: host => "www.foo.com") ' – yellowreign

+1

können Sie auch ein Protokoll angeben. wie diese 'Rails.application.routes.url_helpers.product_url (self,: host =>" www.foo.com ",: protocal => 'https')' – silentfox

Verwandte Themen