Ruby on rails 在视图辅助对象中给定块之后渲染内容

Ruby on rails 在视图辅助对象中给定块之后渲染内容,ruby-on-rails,Ruby On Rails,我有一个视图辅助对象方法,它使用块。渲染该块没有问题,但当我尝试在渲染块后添加内容时,它不起作用 def validation_div(&block) content_tag :div do yield content_tag :div do 'This content is never rendered!' end end end 上面的代码只生成块并跳过其他内容。我还尝试过:content\u for、ca

我有一个视图辅助对象方法,它使用块。渲染该块没有问题,但当我尝试在渲染块后添加内容时,它不起作用

  def validation_div(&block)
    content_tag :div do
      yield
      content_tag :div do
        'This content is never rendered!'
      end
    end
  end

上面的代码只生成块并跳过其他内容。我还尝试过:
content\u for
capture
concat
with\u output\u buffer
,但都没有成功。正如你所注意到的,我真的不明白这些方法是如何工作的。。。但是我的问题是:在给定的块被渲染之后如何渲染。谢谢

如果查看内容标签定义,您会看到它只输出一个标签、一个类和一个内容。您正试图将其从多个内容中释放出来,因此您需要加入它们

def validation_div(&block)
  content = capture(&block)
  content_tag :div do
    content + content_tag(:div , "This content is never rendered!")
  end
end

捕获很可能是您想要做的事情—您能将代码发布到将块传递给验证的位置吗_div@trh
这是重新定义的