2012-07-12 3 views
1

현재 응용 프로그램에 테이블이 생성 된 순서대로 표시됩니다. 내 날짜 속성 (< % = o.dateg %>)별로 시간순으로 정렬하길 원합니다. 이 작업을 수행하는 데 필요한 적절한 레일 방법은 무엇입니까?레일 목록의 날짜 속성으로 정렬

컨트롤러 :

def show 
@occasion = Occasion.find(params[:id]) 
end 

보기 :

<% @user.occasions.each do |o| %> 
      <td><%= o.name %></td> 
      <td><%= o.pname %></td> 
      <td><%= o.dateg %></td> 

감사합니다!

+0

T 데이터베이스에서 데이터베이스를 정렬합니다. –

+0

그리고 내가 할 수있는 .... 추가 컨트롤러 코드 – js111

+0

이 읽으십시오 : http://stackoverflow.com/questions/3393687/how-do-i-set-a-default-sort-order-for-a-rails- 모델 –

답변

3

맞습니까?

class User < ActiveRecord::Base 
    has_many :occassions 
end 
을 변경할 수

has_many로 :보기에

has_many :occasions, order: 'dateg desc' 
3

당신이 사용할 수있는 sort 예를 들어,

@user.occasions.sort {|a,b| b.dateg <=> a.dateg }.each do |o|

(이 될 것입니다 역순)

당신이 정말로보기에서 모델에이 일을해야하지만

, 명명 된 범위가 잘 작동합니다 :

class User < ActiveRecord::Base 
    has_many :occasions 
    scope :recent_occasions, order('dateg desc') 
end 

다음 사용

@user.recent_occasions.each do |o|