1

내 레일 앱에 검색 바를 추가하고 있습니다. 그것은 텍스트를 찾기 위해 완벽하게 작동하지만 정수인 "date"필드를 검색하려고합니다. 이것에 대한 간단한 대답이있을 것이라고 확신합니다. 그러나 나는 온라인 어디에서나 보았고 그것을 이해할 수는 없습니다. 나는 로컬에서 MySQL을 실행 중이며 데이터베이스가 "날짜"를 문자열로 변환하기 때문에 정상적으로 작동합니다. PG 데이타베이스가 정수를 찾고 싶어하기 때문에 Heroku에 가면 나옵니다. 나는 날짜가 날짜 같은 것을해야한다고 알고heroku의 정수에 대한 레일스 앱 검색

def self.search(search) 
    if search 
    losearch = search.downcase 
    find(:all, :conditions => ['lower(description) LIKE ? OR lower(artist) LIKE ? OR  lower(album) LIKE ? OR lower(date) LIKE ?', "%#{search.downcase}%", "%#{search.downcase}%", "%#{search.downcase}%", "%#{search.downcase}%"], order: "created_at desc") 
    else 
    find(:all, order: "created_at desc") 
    end 
end  

=하지만 꽤 그것을 파악하고 있지 않다 : 다음은 MySQL을 완벽하게 작동 내 코드입니다?.

+0

사용자가 입력 할 수있는 날짜 형식을 먼저 결정해야합니다. –

+0

내 필드의 제목은 "날짜"입니다. 사용자가 1 년을 입력합니다. 예를 들어, 그들은 단지 "2011"을 입력합니다. 검색 창에서 2011을 검색하고 2011 년 입력 한 항목을 반환하겠습니다. 그것은 2011 년이 문자열 2011로 변환되기 때문에 MySQL과 함께 작동합니다. Heroku does not like ... –

+0

'search.to_s.downcase' 해봤습니까? '2011'가 정수로오고 있기 때문에 먼저 문자열로 변환 한 다음 나머지 처리를 수행합니다 –

답변

0

여러분이 줄 수있는 유일한 정답은 프로덕션 환경에서 PostgreSQL을 사용하고 있으므로 개발시 PostgreSQL을 사용해야한다는 것입니다. 개발 데이터베이스가 프로덕션 데이터베이스와 아주 다른 경우 문제가 계속 발생합니다. Mac에서 개발하는 경우 Postgres.app을 설치하십시오. 한 번 클릭하십시오. Gemfile에 pg gem을 추가하면 모두 설정해야합니다.