2011-02-08 6 views
0
에 아무 문제

I가 application_helper.rb 파일에 다음과 같은 두 가지 액티브 쿼리 :문제 - SQLite는

@left_menu = Page.select ('아이디, MENU_NAME') 이야기 해봐 (: 발표 => 사실, : 정보 열람 => TRUE) .order ("종류")

도 같이 쓸 수있다 :

@left_menu = Page.select ('아이디, MENU_NAME') .where (: published => true, : left_menu => true) .order (" 'ASC'정렬 ')

@left_menu = Page.find (: 모두 : 조건 => {: 게시하기 => 사실, : 정보 열람 => TRUE} : 순서 => : 정렬)

이유는 첫 번째가되지 않습니다 정렬 '열에 정렬, 두 번째 않는 동안? 둘 다 SQLite에서 작동하지만 두 번째 제품 만 MySQL에서 작동합니다.

아이디어가 있으십니까?

+0

MySQL에는 이해할 수있는 기본 정렬 방향이 없어야합니다. – qpingu

답변

1

주문 매개 변수의 견적입니다. (유사)입니다 생성
쿼리

"SELECT id, title FROM `pages` WHERE (`pages`.`pub` = 1) ORDER BY 'sort' ASC" 

의 숯불 ' 인용. SQL 구문이 잘못되었으므로 열 값이 아닌 costant 값으로 정렬됩니다. sqlite는 mysql을 허용하지 않는다.
는 주문 체인 메서드 매개 변수에 따옴표없이 간단한 사용

Page.select('id, menu_name').where(:published => true, :left_menu => true).order("sort ASC") 

하려고합니다.

죄송합니다. 좋은 하루 되세요