Ruby on rails 如何显示移动阵列是否为空

Ruby on rails 如何显示移动阵列是否为空,ruby-on-rails,rhomobile,Ruby On Rails,Rhomobile,我在RhoMobile中有一段代码显示搜索结果。如果没有找到结果,我想显示一条消息,但是作为Ruby n00b,我没有得到我想要输出的消息 <ul data-role="listview"> <% @employees.each do |employee| %> <li> <a href="<%= url_for :action => :show, :id => employee.object %>

我在RhoMobile中有一段代码显示搜索结果。如果没有找到结果,我想显示一条消息,但是作为Ruby n00b,我没有得到我想要输出的消息

<ul data-role="listview">
   <% @employees.each do |employee| %>

     <li>
       <a href="<%= url_for :action => :show, :id => employee.object %>">
         <%= employee.name %>
       </a>
     </li>

   <% end %>
   <% "<li>No results found</li>" if @employees.empty? %>
</ul>

如何修复此问题?

您缺少
=
,应该是:

<%= "<li>No results found</li>" if @employees.empty? %>

虽然这也可能不起作用,因为字符串没有标记为HTML安全的。也就是说,最好将所有内容包装在一个条件中,以使其更加清晰,并避免将HTML包含在字符串中:

<ul data-role="listview">
  <% if @employees.any? %>
    <% @employees.each do |employee| %>
      <li>
        <%= link_to employee.name, {:action => :show, :id => employee.object} %>
      </li>
    <% end %>
  <% else %>
    <li>No results found</li>
  <% end %>
</ul>
  • :show,:id=>employee.object}%>
  • 未找到任何结果

我还将您的手动编码链接替换为呼叫。

您的输出是什么?请直接检查HTML源代码。如果没有结果,我不会将“未找到结果”作为列表项。只需
    由于它位于私人浏览器中的移动设备上,很难找到,因此检查器显示一个空的
      。此代码与链接一起工作,您的链接在移动设备上没有任何位置:show,:id=>employee.object}%>@Martlark您将问题标记为Rails,并且
      link\u to
      将在Rails中工作。我真的很了解Rhombile,但是如果它下面没有使用Rails,那么你应该重新标记你的问题。它确实使用RubyonRails。在您的代码中修改链接_to(如我的注释中所做的)可以让它工作。我的方式应该可以工作,即使在Rails 2.3中(或者更早),除非您出于某种原因不使用RESTful路由。