2011-10-21 15 views
9

Tengo mi anuncio publicitario en los carriles 3.1 que tiene un accesorio en línea.asset_url en el anuncio publicitario en los carriles 3.1

Para abrir el archivo adjunto i utilizar este código:

attachments["rails.png"] = File.read("#{Rails.root}/app/assets/images/Rails.png") 

hay una manera de cambiar eso con algo como assets_url?

+0

No necesita (ni desea) utilizar algo como asset_url para esto ... Solo le salvaría las primeras palabras. Además, la versión más corta: 'File.read (Rails.root.join ('app/assets/images', 'Rails.png'))' desde la que puedes crear tu propio "asset_url" como ayudante. –

+0

pero puedo poner mis activos en el archivo de activos del proveedor, como un archivo js externo, o una imagen externa que deseo agregar al cuerpo del correo electrónico –

+0

¿Puede hacer algo como 'File.read (Rails.root. join ('public', view_context.asset_path ('Rails.png'))) ' Debería funcionar ya que los activos compilados están siempre en público/activos. Ese 'view_context' puede no ser necesario (o puede no estar disponible en ActionMailer :() pero demos una oportunidad! –

Respuesta

10

Si entiendo correctamente, desea utilizar la funcionalidad de búsqueda de la canalización de activos para localizar la ruta local de un activo determinado, para que no tenga que codificar en qué directorio se encuentra. Si ese es el caso, desea hacer esto:

<YourAppName>::Application.assets.find_asset('Rails.png').pathname 

este localizará el activo utilizando tubería estándar/piñones de la búsqueda, y le dará la ruta local completa al archivo.

+0

Usted señor ... solo salve mi día ... gracias –

+0

hola, esto me da la ruta en 'app/assets/...' pero no da la ruta del activo real en 'public/assets'. Sin embargo, es bueno saberlo, pero incluso en el entorno de producción no me da el directorio que quería. Aunque sé que he agregado mis notas. Gracias – FireDragon

Cuestiones relacionadas