[RUBY-ON-RAILS] 루비 레일에 : 어떻게 액티브를 사용하여 두 개의 열이 종류는 무엇입니까?
RUBY-ON-RAILS루비 레일에 : 어떻게 액티브를 사용하여 두 개의 열이 종류는 무엇입니까?
나는 두 개의 열을 기준으로 정렬하려면, (가격) 하나는 날짜 시간 (updated_at는)이고, 다른 하나는 소수이다
나는 여러 항목이 같은 날에 발생하는 경우 종류의 가격에 의해, 다음, updated_at에 의해 처음으로 정렬 할 수 있도록하고 싶습니다.
해결법
-
==============================
1.당신이 MySQL을 사용하고 가정,
당신이 MySQL을 사용하고 가정,
Model.all(:order => 'DATE(updated_at), price')
다른 답변에서 구별을합니다. updated_at의 열은 종류가 업데이트 된 날을 기준으로 할 그렇다면, 풀 타임 스탬프 될 것입니다, 당신은 타임 스탬프에서 불과 날짜 부분을 얻을 수있는 기능을 사용해야합니다. MySQL의에서, 즉 DATE ()이다.
-
==============================
2.레일 4에서는 비슷한 일을 할 수있는 :
레일 4에서는 비슷한 일을 할 수있는 :
Model.order(foo: :asc, bar: :desc)
foo는 바는 DB를 열 수 있습니다.
-
==============================
3.
Thing.find(:all, :order => "updated_at desc, price asc")
트릭을 할 것입니다.
Thing.all.order("updated_at DESC, price ASC")
갈 수있는 레일 3 방법입니다. (감사 @cpursley)
-
==============================
4.액티브 레코드 쿼리 인터페이스를 사용하면 쿼리를 주문 원하는만큼의 속성을 지정할 수 있습니다 :
액티브 레코드 쿼리 인터페이스를 사용하면 쿼리를 주문 원하는만큼의 속성을 지정할 수 있습니다 :
models = Model.order(:date, :hour, price: :desc)
또는 더 구체적를 얻으려면 (감사 @ zw963) :
models = Model.order(price: :desc, date: :desc, price: :asc)
보너스 : 첫 번째 쿼리 후에는 다른 쿼리를 체인 수 있습니다 :
models = models.where('date >= :date', date: Time.current.to_date)
-
==============================
5.실제로 액티브 레코드를 사용하여 작업을 수행하는 방법에는 여러 가지가 있습니다. 위에서 언급되지 않은 하나는 것 (다양한 형식으로, 모든 유효한) :
실제로 액티브 레코드를 사용하여 작업을 수행하는 방법에는 여러 가지가 있습니다. 위에서 언급되지 않은 하나는 것 (다양한 형식으로, 모든 유효한) :
Model.order(foo: :asc).order(:bar => :desc).order(:etc)
어쩌면 더 자세한하지만 개인적으로 관리하기 쉽게 찾을 수 있습니다. SQL은 한 단계에서 생산됩니다 :
SELECT "models".* FROM "models" ORDER BY "models"."etc" ASC, "models"."bar" DESC, "models"."foo" ASC
thusly 히, 원래의 질문에 대한 :
Model.order(:updated_at).order(:price)
당신은 데이터 형식을 선언 할 필요는 액티브가 원활하게이 작업을 수행하고, 그래서 당신의 DB 엔진을 수행합니다
-
==============================
6.
Model.all(:order => 'updated_at, price')
-
==============================
7.이들 중 아무도 나를 위해 일한 없습니다! 인터넷을 통해 상단과 하단을 찾고 정확히 이일 후, 나는 해결책을 발견!
이들 중 아무도 나를 위해 일한 없습니다! 인터넷을 통해 상단과 하단을 찾고 정확히 이일 후, 나는 해결책을 발견!
special_price 및 MSRP : 당신이 포함 된 제품 테이블에 많은 열이 있다고 할 수 있습니다. 다음은 우리가 정렬하려고하는 두 개의 열이 있습니다.
모델의 좋아, 첫 번째 이 줄을 추가합니다 :
named_scope :sorted_by_special_price_asc_msrp_asc, { :order => 'special_price asc,msrp asc' }
당신이 검색을 수행해야하는 경우 둘째, 제품 컨트롤러에 추가 :
@search = Product.sorted_by_special_price_asc_msrp_asc.search(search_params)
from https://stackoverflow.com/questions/3587776/ruby-on-rails-how-do-i-sort-with-two-columns-using-activerecord by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 레일 : 커피 스크립트 또는 자바 스크립트 자산 파일에 액세스 컨트롤러 인스턴스 변수 (0) | 2020.02.23 |
---|---|
[RUBY-ON-RAILS] 앱은 생산 환경에서 자산 봉사하지 난간 (0) | 2020.02.23 |
[RUBY-ON-RAILS] 루비 1.9.2 방법 Windows에서 RMagick를 설치 하는가? (0) | 2020.02.23 |
[RUBY-ON-RAILS] 열쇠 속성을 중첩 4.0 강력한 매개 변수를 레일이 해시 포인트 (0) | 2020.02.23 |
[RUBY-ON-RAILS] .js.erb VS의의 .js (0) | 2020.02.23 |