【发布时间】:2014-10-06 13:46:05
【问题描述】:
在 Rails 4 中,如何执行任意控制器操作并将响应呈现给字符串?
这显然是一种不好的做法,但在某些情况下很难避免:
- 您正在制作动态呈现的 pdf(或任何独立响应)的离线副本或电子邮件附件。
- 上述响应涉及不受您控制或在外部 gem 中的视图和控制器。
- 上述视图涉及布局和数十个使用相对路径和自定义模板渲染引擎的局部视图。
在某些情况下(当从另一个控制器调用时),可以通过替换视图所需的任何数据来消除对控制器的依赖。但是,这通常仍然会破坏视图渲染,因为不能再将相对路径传递给部分内的渲染函数(以及其他问题)。
【问题讨论】:
-
你渲染这个任意动作的上下文是什么?在另一个动作中?从控制台?耙任务?如果您想要相同的输出(例如
render new如果create失败),则在同一控制器中相对常见。 -
来自 ActionMailer 控制器和集成测试。
标签: ruby-on-rails ruby-on-rails-4 actionmailer renderpartial