私は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
私は検索用語を入力すると、それは私が検索する情報だけではなく、すべてのテーブル情報を表示します。どのようにそれを取得するためのアイデアは、私が探しているものにのみデータを表示するには?
このアクションを呼び出すと、log/development.logの関連ログが表示されます。 –
http://pastie.org/10977886 – Prox