Rails : 动态添加助手到控制器并在视图中访问它

Rails : dynamically add helper to controller and access it in view

我的代码如下:

ac = ActionController::Base.new()
# do some stuff
ac.render_to_string(
  partial: my_partial,
  formats: my_format,
  locals: { some_local: some_value }
)

我想做的是让一些助手动态地可供我渲染的部分使用。理想情况下,我想遍历一组辅助模块并扩展视图,以便可以在视图内访问我的辅助方法。这可能吗?

(我知道这不是干净的代码,但这是一个非常特殊的低级服务)

创建您自己的渲染控制器。

module Core
  class RenderController < ActionController::Base
    include Core::ApplicationHelper
    include ::YourCustomHelper
  end
end

然后用于 render_to_string

::Core::RenderController.new.render_to_string('agreement_files/shared/a.html.erb', locals:  { a: @a , b: @b })