什么是正确的if else声明?

时间:2016-01-27 02:15:14

标签: ruby-on-rails

我希望此代码执行的操作是在已添加冲浪学校时以及if条件为真时执行if操作。当没有添加冲浪学校的时候,我想做一个“抱歉,找不到冲浪学校”的路线。

相反,即使if动作为真,此代码仍将显示else行。

<% @surfschools.each do |surfschool| %>
    <% if surfschool.surfschoolcountry == 'AX' %>
        <h3><%= link_to surfschool.surfschoolname, surfschool.surfschoolurl, target: '_blank' %></h3>
        <p>Country: <%= surfschool.surfschoolcountry %></p>
        <p>Address: <%= surfschool.surfschooladdress %></p>
        <p>Contact Number: <%= surfschool.surfschoolnumber %></p>
        <p>Contact E-mail: <%= surfschool.surfschoolemail %></p>
        <% if current_user && surfschool.user == current_user %>
            <%= link_to 'Update', edit_surfschool_path(surfschool) %>
            <%= link_to 'Delete', surfschool_path(surfschool), method: :delete, data: {confirm: 'Are you sure?'} %>
        <% end %>
     <% else %> 
       <p>Sorry, no surf school found</p> 
    <% end %>
<% end %>

2 个答案:

答案 0 :(得分:1)

好像你正在过滤冲浪学校的国家代码。因此,过滤掉国家/地区代码栏 AX的冲浪学校会更容易。

#in the controller
@surfschools = SurfSchool.where(surfschoolcountry: "AX")

#in the view
<% if @surfschools.count == 0 %>
  <p>Sorry, no surf schools found</p>
<% else %>
  <!-- your code here -->
<% end %>

这种方式更直接,也是数据驱动的。

答案 1 :(得分:0)

您还可以添加图像以引导用户到其他地方,例如:

<% if @surfschools.count == 0 %>
   <%= link_to image_tag("sorry.png"), root_path %>