繁体   English   中英

在帮助程序中渲染 content_for 块

[英]Rendering a content_for block in a helper

我正在尝试通过帮助程序呈现 content_for 块的结果。

我有一个模板(HAML)和如下布局:

# app/views/books/show.html.haml
-content_for(:page_header) do
     %h1= @book.title

# app/views/application.html.haml
...
=yield(:page_header) 
...

这绝对没问题。

我想要做的是在一个助手中进行调用。 所以我的目标是:

# app/views/books/show.html.haml
-content_for(:page_header) do
     %h1= @book.title

# app/views/application.html.haml
....
=page_header(block)
....

# app/helpers/application.rb
....
def page_header(&block)

    # Some view logic
    # ...

    =yield(:page_header)
end
....

我可以通过调用助手来获得部分结果:

# app/views/application.html.haml
=page_header { yield(:page_header) }

# app/helpers/application.rb
def page_header(&block)
  yield
end

但这对我来说很难看。

有任何想法吗? 提前致谢。

解答: 再次使用 content_for(:page_header) 来渲染它。

您可能想查看捕获以在字符串中获取 output 然后使用它。 方法如下: http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-capture

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM