Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 大多数Rails都是在工作线程中呈现视图内容的方式_Ruby On Rails - Fatal编程技术网

Ruby on rails 大多数Rails都是在工作线程中呈现视图内容的方式

Ruby on rails 大多数Rails都是在工作线程中呈现视图内容的方式,ruby-on-rails,Ruby On Rails,我需要生成一个HTML新闻稿,并批量同步到批量电子邮件提供商 我有一个Rake任务,它同步所有联系人,并需要生成新闻稿HTML。我有几个选择,其中没有一个是完美的: 我可以使用控制器生成它。这似乎是最正确的,但这意味着我很难做到 我可以破解一个模型,让它解析haml文件并生成内容。这感觉很糟糕,但会让我从一个工人那里生成它 一定有更好的办法 谢谢不要在模特身上做这件事。如果您需要生成新闻稿,则新闻稿是电子邮件,因此请使用邮件发送程序。如果您的内容是特定于用户的,则将所需的数据传递给mailer通

我需要生成一个HTML新闻稿,并批量同步到批量电子邮件提供商

我有一个Rake任务,它同步所有联系人,并需要生成新闻稿HTML。我有几个选择,其中没有一个是完美的:

  • 我可以使用控制器生成它。这似乎是最正确的,但这意味着我很难做到
  • 我可以破解一个模型,让它解析haml文件并生成内容。这感觉很糟糕,但会让我从一个工人那里生成它
  • 一定有更好的办法


    谢谢

    不要在模特身上做这件事。如果您需要生成新闻稿,则新闻稿是电子邮件,因此请使用邮件发送程序。如果您的内容是特定于用户的,则将所需的数据传递给mailer通知方法。邮件程序继承自ActionDispatch::Base,这意味着您可以访问渲染引擎、HAML、Slim、ERB,无论您使用什么。在完成测试和开发构建特定于用户的电子邮件之后,您应该创建一个rake任务,由r构建并向每个用户发送新闻稿。完成此任务后,您可以将其映射到cron作业,该作业将在您决定何时在生产中自动执行


    只是不要让Rails中的整个MVC山欺骗你,新闻稿是一个完全不同的野兽,它不属于应用程序逻辑

    我不需要邮件程序来发送邮件,我只需要生成HTML。这将通过批处理作业中的API传递给电子邮件发送者…是的,您没有。但这是一个比从一个模型上做更好的主意。您所需要的只是一个呈现引擎,将带有相应局部变量的模板传递给它,然后使用mailer客户端(例如gem)