0

私はこのようなlink_toを持っています:

<%= link_to "All", cars_path(:search => :all) %>

彼をクリックすると、次の URL が表示されます。

ローカルホスト:3000/cars?search=all

問題は、データベースに 3 つのレコードがあり、検索リンクに何も表示されないことです。

私の cars_controller.rb にはインデックスがあります:

@cars = Car.search(params[:search]) 

そして car.rb モデルにはメソッドがあります:

def self.search(search)
    result = order('new DESC')
    result = joins(:model => :brand).where('brands.title LIKE ? OR models.title LIKE ? OR status LIKE ?', "%#{search}%", "%#{search}%", "%#{search}%").order('new DESC') if search.present?
    result
end

別の方法がありますが、これに限定してもまだ機能していません。

どんな提案でも大歓迎です、ありがとう!

4

1 に答える 1

0

クエリで、タイトルまたはブランド名に「all」が含まれる車を検索しています。それは本当にあなたが望むものですか?そして、あなたのテーブルにそのような名前の車はありますか?

検索を書くだけ<%= link_to "All", cars_path %>では存在せず、すべての車を取得する必要があります。

このようなクエリで同じパラメーターを複数回使用している場合、このように記述すれば、はるかに短くすることができます。

def self.search(search)
    result = order('new DESC')
    result = result.joins(:model => :brand).where('brands.title LIKE :search OR models.title LIKE :search OR status LIKE :search', search: "%#{search}%") if search.present?
    result
end
于 2013-07-19T23:41:55.753 に答える