2017-12-17 17 views
1

私は自分のサイトで簡単な検索機能を実装しようとしています。現在、検索バーを使用すると効果がありますが、結果が見つからない場合は空白のページが表示されます。私は私がリダイレクトしたい、これはこれはrecipes_controller.rbで私のコントローラのindexアクションRails空白を返す検索ページ

def index 
     @recipes = if params[:term] 
        Recipe.where('name LIKE ?', "%#{params[:term]}") 
       else 
        Recipe.all 
     end 
@categories = Category.all 
end 

あるレシピ/ index.html.erb

<%= form_with(url: recipes_path, method: :get, local: true) do |form| %> 
     <%= form.text_field(:term, {class: 'form-control', type:'search', 
      arialabel:'search', placeholder: 'search by recipe name'})%> 
     <%= form.submit 'Search', class: 'btn btn-dark bg-dark' %> 
    <% end %> 

に私のフォームでのPostgreSQL

を使用していますユーザーはインデックスビューに戻り、「レシピが見つかりませんでした。別のレシピを検索してください」などのメッセージを表示します。

+0

こんにちは、あなたもあなたのビューファイルを共有することができますか?配置されているフォームは、同じコントローラの下のビューにありますか? – surga

+0

フォームがインデックスビューにあり、レシピコントローラに対応するインデックスアクションが含まれています – brff19

+0

index.html.erbに '@ recipes'の結果を示すコードはありません。 index.html.erbに結果を表示するには、テーブルや他の形式に '@ recipes'を入れる必要があります – surga

答えて

1
あなたのインデックスファイルに

、お使いのコントローラで

<%= form_tag('/recepies/', :method => :get, :role => 'form') do %>     
    <%= text_field_tag :term, :class => "form-control", :placeholder => "Search"%>          
    <button class='glyphicon glyphicon-search' type="search"> 
    </button> 
<% end %> 

def index 
    if params[:term].present? 
    @recipes = Recepie.all 
    @recipes = @recipes.find_term(params[:term].strip) if params[:term].present? 

    if @recipes.blank? { 
      flash[:notice] = 'the recipe was not found, please search for a different recipe.' 
    } 
    end 

    else 
    @recipes = Recepie.all 
    end 
end 

def self.find_term(term) 
    recipes = all 
    recipes = posts.where("recipes.term= ?", term)  
end 
0

検索バーを使用すると効果がありますが、結果が見つからない場合は、空白のページが表示されます。

検索は動作しますが、結果はありません。

私は、インデックスビューと ディスプレイのようなものと言うメッセージにに戻ってユーザーをリダイレクトしたい

「のレシピが見つかりませんでしたが、 が異なるレシピを検索してください。」

何か結果があるかどうかを確認するには、@recipes.any?のようにすることができます。コントローラにチェックインすると、リダイレクトしてメッセージにflashを使用するか、単にメッセージを表示してメッセージをレンダリングすることができます。

PS:複雑な検索機能にはを使用するのが本当に好きです。お使いのモデルで

関連する問題