개체를 만들기 전에 개체의 존재를 확인하는 가장 좋은 방법은 무엇입니까?레코드가 데이터베이스에 이미 존재하는지 확인하는 가장 좋은 방법은 무엇입니까?
검색어를 저장하고 싶지만 이미 데이터베이스에 검색어가 있으면 검색어를 새로 작성하는 것이 좋습니다. 차라리 대부분의 일반적인 쿼리에 대한 통계가 필요합니다.
가장 큰 문제는 객체가 이미 기본 상태인지 확인하는 것입니다. 나는 테이블 전체를 꺼내서 객체 중 하나가 새로운 것과 같은지 확인하지 않고 이것을 확인하는 마법의 함수가 있는지 알고 싶습니다.
또한 실제로 형식이 find_or_create(myObject)
이어야하며 모든 특성이 동일한 지 (그리고 각 쿼리 개체가 많은지) 확인하고 물론 id
을 무시하십시오.
find_or_create_by_region_id_and_departement_id_and_other_attr
아를 사용할 수 없습니다 내가 어떻게이 일을 레일 3.2.6 :
어떤 생각으로 일하고 있어요 의미?
편집 검색 쿼리 테이블 구조를 추가합니다 : 하나가없는 경우 객체를 생성하기 위해 first_or_create/first_or_initialize
을 사용할 수 있습니다
# == 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
#
글쎄,이 문제는 내가 Query.where (queryObject) 할 때 TypeError : 쿼리를 방문 할 수 없다는 의미입니다. 그게 무슨 뜻인지 전혀 모르겠습니다. –
관련 코드를 공유 할 수 있습니까? – davidrac
'@search_query = SearchQuery.where (params [: search_query]).first_or_create' –