我对ruby很新,并有一个问题。我正在尝试用两个搜索字段实现搜索。第一个搜索字段将检查elsif(2),第二个搜索字段将检查elsif(3)。当我在第一个搜索字段中搜索时,如果找到搜索,它会显示我想要的内容。但是当我将第一个搜索字段留空,并在第二个搜索字段中输入搜索时,它总是会给我以前的搜索结果。我写了if else声明如下:
如果条件(1)
elsif condtion(2)
elsif condtion(3)
elsif condtion(4)
似乎只要elsif(3)真实一次,就永远不会达到elsif条件(4)。
以下是代码:
<h1> Search Results <h1>
<p><%= link_to 'Back', new_search_path %> </p>
<% if @search.find_users.empty? %>
<p> No Records Found </p>
<% elsif @search.find_jobs.empty? %>
<p> No Records Found1 </p>
<% elsif !@search.find_jobs.empty? %>
<% @search.find_jobs.each do |c| %>
<%= c.title %>
<% end %>
<% elsif !@search.find_users.empty? %>
<% @search.find_users.each do |c| %>
<%= c.first_name %>
<% end %>
<% end %>
非常感谢您的时间:)
答案 0 :(得分:2)
条件4永远不会发生,因为如果条件2为假,则条件3自动为真,因为它们彼此完全相反。
似乎只要elsif(3)真实一次,就永远不会达到elsif条件(4)。
这就是elsif
的工作方式 - 这意味着'其他如果'。如果您希望4显示,无论3是什么,只需结束您的第一个if
块并开始一个新的。
<h1> Search Results <h1>
<p><%= link_to 'Back', new_search_path %> </p>
<% if @search.find_users.empty? %>
<p> No Records Found </p>
<% else %>
<% @search.find_users.each do |c| %>
<%= c.first_name %>
<% end %>
<%end%>
<% if @search.find_jobs.empty? %>
<p> No Records Found1 </p>
<% else %>
<% @search.find_users.each do |c| %>
<%= c.title %>
<% end %>
<% end %>