2013-03-25 1 views
0

오래 사과 된 제목에 사과, 내가 전달한 매개 변수와 일치하는 데이터베이스에서 마지막 레코드를 다시 검색하려고합니다.DataMapper가 .last를 사용하여 마지막 레코드를 가져 오면 .any를 사용하면 메서드 오류가 발생하지 않습니다. 보기에서

@goals = Weight.last(:is_goal=>true,:user_id=>@user.id) 

제 의견에는 현재가 있는지 검사하고 조건이 있으면 div가 표시되는지 확인하는 조건부를 실행하고 싶습니다.

그러나 어떤 이유로이 방법은 no 메서드 오류 NoMethodError at/ undefined method 'any?'을 발생시킵니다. 나는이 뒤에 어떤 이유가

@goals = Weight.all(:is_goal=>true,:user_id=>@user.id) 

작동 .last.all에 변경하거나 내가 버그를 발견 한 경우?

답변

1

음, .last 메서드는 개체를 반환하고 .all 메서드는 개체 배열을 반환합니다.
.any?은 배열 방법입니다. 객체에 .any?을 호출 할 수 없으며 객체를 생성하지 않으면 메서드가 없다는 것을 알려줍니다.

+0

아, 그 덕분에 정말 대단한데, 그래서 그냥 개체에 대한'.any? '와 같은 것이 있습니까? –

+1

'nil? '을 사용해 볼 수 있습니다. 마치 객체가없는 것처럼 nil로 설정됩니다. 똑같은 것이 아니라 다른 접근 방법이라는 것을 명심하십시오. – MurifoX