オブジェクトを作成する前に、オブジェクトの存在を確認するための最良の方法は何でしょうか。
検索クエリを保存したいのですが、データベースに既に存在する場合、毎回新しいクエリを作成するのは意味がありません。カウンターをインクリメントして、最も一般的なクエリに関する統計を取得したいと思います。
私の最大の問題は、オブジェクトがすでにベースにあるかどうかを確認する方法です。テーブル全体を引き出したり、オブジェクトの1つが新しいオブジェクトと等しいかどうかをチェックしたりせずに、これをチェックする魔法の関数があるかどうかを知りたいですか?
また、それは実際にフォーム上にありfind_or_create( myObject )
、すべての属性が同じであるかどうかを確認し(そして、各クエリオブジェクトに多くの属性があるかどうか)、id
もちろん無視する必要があります。
だからこれは私が使用できないことを意味しますfind_or_create_by_region_id_and_departement_id_and_other_attr
ああ、私はRails3.2.6で作業しています:)
これを行う方法はありますか?
編集して、検索クエリのテーブル構造を追加します。
# == Schema Information
#
# Table name: search_queries
#
# id :integer(4) not null, primary key
# region_id :integer(4)
# departement_id :integer(4)
# ville :string(255)
# environnement_id :integer(4)
# etoiles_min :integer(4)
# etoiles_max :integer(4)
# tente :boolean(1)
# caravane :boolean(1)
# campingcar :boolean(1)
# mobilhome :boolean(1)
# chalet :boolean(1)
# bungalow :boolean(1)
# yourte :boolean(1)
# roulotte :boolean(1)
# tipi :boolean(1)
# autres :boolean(1)
# wifi :boolean(1)
# restaurant :boolean(1)
# epicerie :boolean(1)
# depotpain :boolean(1)
# laverie :boolean(1)
# espace_aqua :boolean(1)
# club_enfant :boolean(1)
# multisport :boolean(1)
# loc_velo :boolean(1)
# acces_pmr :boolean(1)
# animaux :boolean(1)
# naturiste :boolean(1)
# l_campingqualite :boolean(1)
# l_qualitetourisme :boolean(1)
# l_tourismehandicap :boolean(1)
# l_ecotourisme :boolean(1)
# l_normandiequalite :boolean(1)
# l_ancv :boolean(1)
# created_at :datetime not null
# updated_at :datetime not null
#