2017-06-01 16 views
0

我有一個預構建緩存頁面的對象。我這樣稱呼它:包含視圖助手,用於從服務對象調用視圖

str = ActionView::Base.new(Rails.configuration.paths['app/views']) 
          .render(partial: 'item_generator/item_with_modal', 
            locals: { item: @item, format: 'div', 
              create_external: @create_external, 
              view_file: @view_file }) 

我將如何讓這個ApplicationHelper將包括讓助手可以被稱爲?

目前,我有這樣的:

<%=raw ApplicationController.helpers.js_clean(item.detail) %> 

但寧願只是有:

<%=raw js_clean(item.detail) %> 

回答

0

使用extend包括在ActionView::Base實例的助手:

str = ActionView::Base.new(Rails.configuration.paths['app/views']).tap do |v| 
    v.extend(ApplicationController.helpers) 
end.render(
    partial: 'item_generator/item_with_modal', 
    locals: { 
    item: @item, 
    format: 'div', 
    create_external: @create_external, 
    view_file: @view_file 
    } 
)  
+0

嗯.. 。有趣...但我得到這個錯誤:2017-06-02T22:41:44.599Z 39572 TID-ox68oqs pg WARN:TypeError:錯誤的參數類型ActionView :: Base(預期的模塊) – timpone