2016-10-28 5 views
0

私は非常にRubyの新機能で、質問があります。私は検索フィールドに2つの検索を実装しようとしています。最初の検索フィールドはelsif(2)をチェックし、2番目の検索フィールドはelsif(3)をチェックします。最初の検索フィールドで検索すると、検索が見つかった場合は、それが表示されます。しかし、最初の検索フィールドを空のままにして、2番目の検索フィールドに検索を入力すると、前の検索結果が常に表示されます。それはそうです(4)Ruby on railsは以前のelsif文を実行し続けます

condtion ELSIF(3)

条件ならば(1)

ELSIF condtion

を(2)

ELSIF condtion:私は以下のようにelseステートメントの場合は書きました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 [email protected]_jobs.empty? %> 
<% @search.find_jobs.each do |c| %> 
    <%= c.title %> 


    <% end %> 
<% elsif [email protected]_users.empty? %> 
<% @search.find_users.each do |c| %> 
    <%= c.first_name %> 

    <% end %> 

<% end %> 

条件2が偽であるかのため:)

+0

Railsタグが必要です。 –

答えて

2

条件4は、決して起こらないことができますお時間をどうもありがとうございます、条件3は自動的に真である、なぜなら彼らはお互いの正反対です。

elsif(3)が真である限り、それはelsif条件(4)に決して当てはまらないようです。

それはちょうどelsifがどのように動作するかということです - それは 'else if'を意味します。 3が何であっても4を表示したい場合は、最初の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 %> 
関連する問題