El envío de un correo electrónico generalmente se invoca después de una acción en un modelo, pero el correo electrónico en sí es una operación de visualización. Estoy buscando cómo piensas sobre qué pregunta (s) debes hacerte para determinar dónde poner el método de acción llamada de correo. - mal acoplamiento de las preocupaciones relacionadas pero separadasMejores prácticas de ActionMailer: ¿Método de llamada en el modelo o el controlador?
- En un método de modelo:
que he visto/los utilizaron?
- En una devolución de llamada en el modelo (como after_save): la mejor separación hasta donde puedo decir con mi nivel actual de conocimiento.
- En la acción del controlador, simplemente se siente mal, pero ¿hay situaciones en las que esta sea la forma más inteligente de estructurar el código?
Si quiero saber cómo programar, tengo que pensar como un programador, por lo que aprender a pensar a través de soluciones de programación particulares vale la pena meses de codificación por mi cuenta de forma aislada. ¡Gracias!
¿He leído mal o te has equivocado? "Lo escribiría en el controlador después de que el usuario se haya creado correctamente. Directamente". luego, más tarde "Por las razones expresadas, soy de la opinión de que las llamadas de correo deben ser donde tengan sentido, y generalmente el modelo es ese lugar". – Cameron
ahahah, error de escritura! :) thx para la corrección. – ChuckE
_Later_ comentario, pero aquí hay un ejemplo que podría tener sentido en el modelo: cuando se activa un correo electrónico después de un _status_ cambio. Por ejemplo, si un usuario está bloqueado (por ejemplo, cambia 'status' a' locked') debería recibir un correo electrónico, sin importar cómo se bloqueó. ¿Qué piensas? – Gerry