2012-06-19 10 views
5

Cada vez que uno de los incendios anuncios publicitarios fuera si el cuerpo contiene algo así como link_to root_url se da este error increíblemente servicial:aplicación heredada con el error de enrutamiento extraña, no se encontró la ruta {}

ActionView::Template::Error: No route matches {} 

La traza bien es inútil o puntos a ese link_to método. Como también es muy indescifrable, estoy preguntando sobre el desbordamiento de la pila.

ACTUALIZACIÓN 1: ayudar, he publicado la aterradora routes.rb archivo: https://gist.github.com/2955610

ACTUALIZACIÓN 2: En la consola, app.root_url proporciona el retorno correcto.

ACTUALIZACIÓN 3:link_to "whatever", root_url funciona muy bien. ¡Tan extraña!

ACTUALIZACIÓN 4: Funciona bien en una vista normal de rieles.

Update 5:FIJO El image_tag ahora no está proporcionando una gran cantidad en el correo electrónico, la salida: http://assets/...png. Fffff.

ACTUALIZACIÓN 6: Lo he reducido a eso obtengo el mismo error con (en la consola) app.url_for. Creo que puede estar relacionado.

+1

Por si acaso, ¿tiene 'root: to =>" something "' en routes.rb? – dimuch

+0

@dimuch Publicaré mi archivo de Rutas, cuidado, es feo. – krainboltgreene

+0

¿Podría mostrar también algunas líneas de las plantillas que causan el error? – dimuch

Respuesta

6

Así que la verdadera respuesta es que link_to funciona de manera diferente en ActionMailer que en ActionController. La diferencia es que aparentemente ActionController tiene una opción llamada :script_name, y esto hace todo tipo de suposiciones para usted.

Ahora bien, aunque no estoy de acuerdo con la diferencia que no hay mucho que se pueda hacer al respecto, así que aquí es lo que terminé haciendo:

link_to root_url, root_url 

Ahora, ¿por qué debería usar ambos? Bien, dos razones:

  1. Quería la url como texto de anclaje y href.
  2. Si la URL cambia, no quiero tener que actualizar todas esas cadenas.
+0

es increíble, he gastado en este comportamiento inesperado más de 3 horas. Muchas gracias. – antiqe

+0

Muchas gracias! Acabo de perder un par de horas lidiando con eso. –

0

¿El problema con los anuncios publicitarios es que tal vez se pierda la opción "host"? :)

+0

En mi archivo 'production.rb' tengo este conjunto:' config.action_mailer.default_url_options = {host : "www.connectforacause.com "}' – krainboltgreene

Cuestiones relacionadas