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.a와 뷰의 도우미 블록 내에 포함 된 html을 모두 포함하는 div 여야합니다. 다음 오류가 발생합니다.
undefined local variable or method `output_buffer' for #<SomeHelper::SomeSomeMethods...
어떻게 수정합니까?
를 볼 수 CONCAT 방법을 위임 할 필요가 나는 것을 시도, 그리고'''정의되지 않은 메서드'output_buffer = '# 얻을'''. 내가 지적한 오타를 편집했습니다. –
Obromios
당신은'delegate : content_tag, to : : view'를 시도하고 있습니다. 당신이 그렇게 할 좋은 이유가 없다면, 그리고 그것이하는 효과를 제공하면, 이것은 일을 망칠 것입니다. 도우미에서 사용중인 Rails의'content_tag' 메소드에 대한 호출이'view'로 리디렉션되고 대신 그 결과가 무엇인지 모르겠습니다. 그것을 제거하고 문제가 지속되는지보십시오. 또한, 왜 당신이 명시 적으로'ActionView :: Helpers :: TextHelper'를 포함 할 필요가 있다고 생각합니까? –