ruby on rails - plan - ¿Dónde coloco los métodos de ayuda para las vistas de ActionMailer?
sendgrid free (5)
Tengo un método que toma una serie de cadenas y las une para que hagan algo como esto:
>> my_arr
=> ["A", "B", "C"]
>> and_join(my_arr)
=> "A, B, and C"
Me gustaría que mi correo tuviera acceso para poder enviar algo de información en un correo electrónico. Parece que no puedo encontrar un buen lugar para colocarlo y ponerlo en el archivo application_helper.rb y no lo encuentra allí. ¿Dónde debería ir?
+1, funcionó bien, solo una pequeña corrección:
Tienes que usar el módulo en lugar de la clase en el archivo de ayuda:
# mailer_helper.rb
module MailerHelper
def and_join(arr)
# whatever …
end
end
En mi caso, para Rails 5.1, tuve que usar métodos de inclusión y ayuda, como este:
include ApplicationHelper
helper :application
Y luego simplemente proceder a utilizar el método normalmente.
class MyMailer < ActionMailer::Base
include ApplicationHelper
helper :application
def my_mailer_method
my_helper_method_declared_in_application_helper
..
end
end
Una pregunta ya contestada, pero no conseguí dónde / qué archivo modificar de las otras respuestas de SO. Así es como lo hice:
En la parte inferior de app / config / initializers / devise.rb puede agregar esto:
Devise::Mailer.class_eval do
helper :application # includes "ApplicationHelper"
end
Este ejemplo incluirá los métodos en /app/helpers/application_helper.rb. En su lugar, podría incluir otro archivo de ayuda: si, por ejemplo, el método es solo para la aplicación de correo o si se usa para otro controlador. La definición que necesitaba se usa en todas partes, así que la puse en ese archivo para que todas las vistas puedan acceder a ella.
Use el método de helper
en su correo para definir la clase de ayuda a usar
# mailer_helper.rb
module MailerHelper
def and_join(arr)
# whatever …
end
end
# my_mailer.rb
class MyMailer < ActionMailer::Base
helper MailerHelper
…
end
Entonces puedes usar los métodos en las vistas también.
to_sentence
la pena ver el método de extensión to_sentence
para las matrices que proporcionan los rieles.