如何停止渲染页面/部分

ato*_*era 2 haml ruby-on-rails

我感兴趣的是我可以在模板中间插入模板渲染.例如:

项目/ index.html.haml

%h2 Items

-if @items.empty?
  %h3 There are no items
  /X statement/ 


-@items.each do |item|
  /items rendering/ 
Run Code Online (Sandbox Code Playgroud)

因此,如果没有项目,将显示消息并且页面呈现将被中断,否则将呈现项目列表.我现在唯一能做的就是抛出if-else语句.我试图使用return代替X语句,但似乎它不像我期望的那样工作

Sim*_*tti 5

实现该结果的方法正是使用if-else语句.

我不熟悉Haml,但使用好的"旧"ERB的逻辑是

<% if @items.empty? %>
  There are no items
<% else %>
  <% @items.each do |item| %>
  ...
  <% end %>    
<% end %>    
Run Code Online (Sandbox Code Playgroud)

如果您希望拆分条件,则可以使用双精度值

<% if @items.empty? %>
  There are no items
<% end %>    

<% @items.each do |item| %>
...
<% end unless @items.empty? %>    
Run Code Online (Sandbox Code Playgroud)

  • 你为什么要反对大自然?即使假设可能存在某种破解,解决方案也非常简单:您应该使用if-else流控制语句. (2认同)