【问题标题】:How to render content_for with a block in Rails 3?如何在 Rails 3 中使用块渲染 content_for?
【发布时间】:2012-12-31 04:54:56
【问题描述】:

我无法在其他地方找到解决方案。这是我想要工作的代码:

<%= render :layout => "l/run" do %><%-
     content_for :error do
   -%>Error - Missing arguments<%-
     end -%>
<%=  render :inline => @api.data.views["html"], :locals => {:result => @result} %>
<%- end -%>

在 l/run 中:

<%-
...
  if readQuery.value?(nil)
-%><%= yield :error %><%-
  else
...
-%><%= yield %><%-
...
  end
-%>

我觉得这种方法应该可行,但我很难过。

【问题讨论】:

    标签: ruby-on-rails-3 templates


    【解决方案1】:

    正常情况下应该可以的

    view1.html.erb

    <%= yield :error%>
    

    view2.html.erb

    <% content_for :error do %>
      #your code
    <% end %> 
    

    【讨论】:

    • 感谢您的快速回答。没有引发任何 rails 错误,yield 工作正常,问题是 yield :error 不显示任何内容。
    • content_for 块之前的结束标签是什么?尝试仅将 content_for 标记放入一个 ruby​​ 代码块(如我的示例中)和 c 它是如何进行的,似乎您的 content_for 标记从未被调用
    • 我认为你是对的,但正如我在帖子中所写的那样,我已经尝试过了。我将使用该代码更新我的 q。
    猜你喜欢
    • 2017-06-01
    • 2011-10-10
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    相关资源
    最近更新 更多