0
我正在用以下類型的結構編寫幫助程序;在幫助程序的類中使用concat
module SomeHelper
def some_task(&block)
SomeMethods.new(self, block).some_task
end
class SomeMethods< Struct.new(:view, :callback)
delegate :content_tag, to: :view
include ActionView::Helpers::TextHelper
def some_task
content_tag :div do
concat content :div, class: 'a' do
Header
end
concat view.capture(&callback)
end
end
end
end
最終輸出應該是一個div,它包含div.a和包含在視圖中的helper塊內的html。我收到以下錯誤;
undefined local variable or method `output_buffer' for #<SomeHelper::SomeSomeMethods...
我該如何解決這個問題?
我試過了,並得到'''未定義的方法'output_buffer =」爲#'''。我編輯了你指出的錯字。 –
Obromios
你正試圖'委託:content_tag,::view'。除非你有一個很好的理由來做這件事,並且提供它的效果,否則這會讓事情變得糟糕。調用Rails在助手中使用的content_tag方法正在被重定向到'view',我不確定它的結果可能是什麼。嘗試刪除,看看問題是否依然存在。另外,爲什麼你覺得你需要顯式地包含「ActionView :: Helpers :: TextHelper」? –