我正在渲染以下 html 片段...
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<%= yield %>
</div>
</div>
</div>
...像这样:
<%= render :layout => "shared/menu" do %>
...code here...
<% end %>
现在,为了进一步清理事情,我想将渲染隐藏在助手中,以便具有以下内容:
<%= bs_menu do %>
...code here...
<% end %>
我尝试过以下帮助程序,但没有成功:
def bs_menu(&block)
render(:layout => "shared/menu") &block
end
我从 Rails (3.2.1) 收到此错误:
You invoked render but did not give any of :partial, :template, :inline, :file or :text option.
我做错了什么?
最佳答案
我认为你也可以这样做:
def bs_menu(&block)
render({:layout => "shared/menu"}, &block)
end
(也许您也可以省略花括号)。这是我将 block 传递给方法的标准方法。
关于ruby-on-rails - 在辅助类中渲染布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9410710/