2012-01-03 15 views
8

Me gustaría crear una cadena que incluya una ruta para un objeto en Rails.Cómo obtener url_para un objeto en el método de modelo en Rails

def notification_content 
     "#{app.listing_url(my_listing, :host => "example.com")}. " + 
    end 

Este contenido se introducirá en mi ActionMailer como contenido de correo electrónico.

En la consola, funciona bien. Sin embargo, cuando lo ejecuto en el servidor localhost, aparece el siguiente error:

undefined local variable or method `app' 

¿Cómo debo proceder? Además, ¿cómo puedo hacer que la ruta sea un hipervínculo?

Muchas gracias.

Respuesta

15
include Rails.application.routes.url_helpers 
def notification_content 
    "#{listing_url(my_listing, :host => "example.com")}. " + ... 
end 
+1

detalles aquí http://stackoverflow.com/questions/341143/can-rails-routing-helpers-i-e-mymodel-pathmodel-be-used-in-models~~V~~plural~~3rd – clyfe

+0

Muchas gracias, clyfe! – AdamNYC

+12

No es necesario incluir; simplemente puede invocar ese objeto directamente: Rails.application.routes.url_helpers.url_for (...) –

Cuestiones relacionadas