2009-08-28 6 views

답변

4

가정 :

post = Post.find(params[:id]) 

및 사후 모델이 포함되어 다음

has_many :comments 

할 수 있습니다 : (123) 귀하의 게시물 ID입니다

comments = post.comments 
first_comment = comments.first 
+1

처럼 뭔가를해야 할 것입니다. – aehlke

+0

그냥 공정을 설명하기 위해 –

+0

굉장 완벽! – Elliot

3
Post.find(123).comments.first 

.

+0

urgh 그 총액은 –

+0

입니다. 찾기는 기본적으로 id입니다. find (: first) (.first)와 비교하여 .first는 불쾌합니다. –

+0

Thanks, cleaned. – aehlke

1

@ post.comments.first가 정상적으로 작동합니다. (@ post는 컨트롤러 메소드에서 설정해야합니다.)

그러나 'first'는 일반적으로 id에 의해 정렬 된 연결에서 첫 번째를 의미합니다. ID 자동 생성 이후 '첫 번째 추가됨'또는 '가장 빠른 의견'과 동일합니다. 하지만 그렇게 할 필요는 없습니다.

의견에 대한 연관성이 다른 주문을 지정한 경우 먼저이를 사용합니다 (예 : 당신의 연결이 닮은 경우 : 다음

has_many :comments, :order=>'rating desc' 

, post.comments.first는 당신에게 가장 높은 평가 의견을 줄 것이라고하지합니다 ('평가'필드의 평균 등급을 나타냅니다 일부 값으로 어떻게 든 설정 가정) 추가 될 첫 번째 귀하의 의견 모델을 가정하는 경우

는, 타임 스탬프를 가지고, 당신은 같은 간단한 작업을 위해 불필요한 변수 할당을 많이입니다

@post.comments.find(:first, :order=>'created_at asc') 
관련 문제