2016-12-06 2 views
0

私はindex.htmlに検索ボックスを作成しましたが、検索された情報だけを表示するのではなく、すべてのデータベース情報を表示します。どのようにこれを正しく動作させるための任意のアイデアですか?検索ボックスにRuby on Railsの正しい条件をSQLiteで表示させるには?

ここに私が持っているものは... 私は記事と呼ばれるモデルを持っています。記事と呼ばれるコントローラにフォームを設定しました。記事の表の中で、私はcalibertitle、bullet、coal、casselength、powder、およびtextという列を作成しました。フォームはデータを取得し、これらの列に配置します。ある場合

私は私のarticles_controller.rb

def index 
    @articles = Article.all 
    end 

をこのこの記事の詳細/ index.htmlに表示されている私は、私は誰もがキーワードを入力することができます検索ボックスを作成したいことを決定し、その特定の情報が表示されます。私は '.308'、 '9mm'など:calibertitleフィールドの下にリストされています。だから、メンバーが私のデータベースにある口径の1つを入力すると、その口径だけに情報が表示されます。

私のページのメインインデックスに関連付けられているwelcome_controller.rbという2番目のコントローラがあります。 www.website.com/index.htmlなど

私はこのページに検索ボックスを配置しました。ここ は、私は私のアプリ/モデル/ article.rb

class Article < ApplicationRecord 
    validates :calibertitle, presence: true, 
          length: { minimum: 3 } 

    def self.search(search) 
    where("calibertitle LIKE ? OR bullet LIKE ? OR powder LIKE ?", "%#{search}%", "%#{search}%", "%#{search}$ 
    end 

end 

でこれを置いてきた^^これは、SQLiteのために正しいです私の/app/views/welcome/index.html.erb

<%= form_tag(articles_path, :method => "get", id: "search-form") do %> 
    <%= text_field_tag :search, params[:search], placeholder: "Search Calibers" %> 
    <%= submit_tag "Search", :name => nil %> 
<% end %> 

です? 私もこのような何かがうまくいくかどうかわからないんだけど?...ここ

where('calibertitle LIKE ?', "%#{params[:calibertitle]}%") 

は私のアプリ/コントローラ/ welcome_controllers.rbです...

class WelcomeController < ApplicationController 
    def index 
    @articles = Article.all 
    if params[:search] 
     @articles = Article.search(params[:search]).order("created_at DESC") 
    else 
     @articles = Article.all.order("created_at DESC") 
    end 
    end 
end 

私は検索用語を入力すると、それは私が検索する情報だけではなく、すべてのテーブル情報を表示します。どのようにそれを取得するためのアイデアは、私が探しているものにのみデータを表示するには?

+0

このアクションを呼び出すと、log/development.logの関連ログが表示されます。 –

+0

http://pastie.org/10977886 – Prox

答えて

0

なぜGemを使ってレールを検索していないのですか?最良の選択肢の1つはhttps://github.com/ankane/searchkick(RailsとElasticsearchで簡単にインテリジェント検索を行う)です。 Searchkickは、ユーザーが探しているものを学習します。より多くの人が検索するにつれて、よりスマートになり、結果はより良くなります。開発者にとってはフレンドリーで、ユーザーにとっては魅力的です。

+0

Gemsを実行する前に、Railsの詳細を知りたい – Prox

0

私が間違っていたことを理解しました。間違ったコントローラを更新しました。私はウェルカムコントローラーの代わりに記事コントローラーを更新していました。

関連する問題