iHi*_*HiD 8 templates ruby-on-rails helpers
我试图通过帮助器呈现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)
...
Run Code Online (Sandbox Code Playgroud)
这非常好.
我想要做的是在帮助器中进行调用.所以我的目标是:
# 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
....
Run Code Online (Sandbox Code Playgroud)
我可以通过调用帮助程序来实现部分结果:
# app/views/application.html.haml
=page_header { yield(:page_header) }
# app/helpers/application.rb
def page_header(&block)
yield
end
Run Code Online (Sandbox Code Playgroud)
但这让我觉得难看.
有任何想法吗?提前致谢.
解答:再次使用content_for(:page_header)进行渲染.
您可能希望查看捕获以获取字符串中的输出然后使用它.方法如下:http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-capture
| 归档时间: |
|
| 查看次数: |
5294 次 |
| 最近记录: |