2014-11-14 3 views
1

레일에서 시작하는 데 몇 가지 문제가 있습니다.컨트롤러 .find 방법에 조건을 추가하려고 시도합니다.

나는 수동으로 승인 할 때까지 처음에는 모든 추가 사항을 승인 된 것으로 표시합니다.

'승인'을 클릭 할 수있는 관리 인터페이스를 만들고 있으므로 approved = false 속성을 가진 모든 목록을 표시해야합니다.

여기에 코드입니다 :

def listings 
    @listings = Listing.find(:all, :conditions => "approved = false") 
    end 

그리고 여기에 오류

Couldn't find all Listings with 'id': (all, {:conditions=>"approved = false"}) (found 0 results, but was looking for 2) 

좀 도와 화려한 될 것입니다, 감사합니다!

답변

1

Rails 2.x의 구문을 사용하려고합니다. 다음을 수행해야합니다.

@listings = Listing.where(approved: false) 
3

매우 오래된 구어 (예 : Rails 2.0)를 사용하고 있습니다.

더 새로운 구문은 더 이상 : all을 사용하지 않으며 더 이상 조건을 find 메서드에 전달하지 않습니다. 당신이 레일 4를 사용하는 가정하면, 당신은 .all을 사용할 수 있습니다

def listings 
    @listings = Listing.where(approved: false) 
end 

에 해당이지만,이 경우 단지 문법 설탕입니다.

def listings 
    @listings = Listing.where(approved: false).all 
end 
+0

감사합니다. 정말 감사드립니다. 또한 테이블 항목은 listing.fullname을 사용하여 뷰 상태로 전체 이름을 표시하는 대신 전체적으로 표시되는 것 같습니다. –

관련 문제