실패, puts self.ideas.inspect
출력 : 다음 줄에 그러나처음, 내 응용 프로그램에서
[#<Idea id: 1, title: "Ad et ut nesciunt ut.",
note: ["Ratione et aut harum.", "Dicta nostrum sit officiis voluptates molestiae veritatis ut."],
status: "claimed",
created_at: "2012-12-27 19:03:11", updated_at: "2012-12-27 19:03:11", user_id: 1>,
#<Idea id: 2, title: "Asperiores dolores modi et.",
note: ["Reprehenderit harum consequuntur repellendus qui.", "Labore eum minus voluptas quidem aliquid est occaecati."],
status: "claimed",
created_at: "2012-12-27 19:03:11", updated_at: "2012-12-27 19:03:11", user_id: 1>,
#<Idea id: 3, title: "Labore nam deserunt quibusdam.",
note: ["Sequi saepe itaque.", "Numquam distinctio vel hic et qui."],
status: "claimed",
created_at: "2012-12-27 19:03:11", updated_at: "2012-12-27 19:03:11", user_id: 1>]
, claimed_count = self.ideas.where(status: "claimed").size
반환 0. 나의 쿼리 구문은 분명히 잘못된 것입니다,하지만 난 봤는데 this guide 이상으로 쏟아져 나와 나는 아직도 그것을 이해할 수 없다!
아주 기본적인 것이어야합니다 ... 누구입니까?
편집 : 나는 다음과 같은 테스트를 사용하여 아이디어의 컬렉션 가지고 :
it "can't claim an idea if he already has 3 ideas with claimed status" do
james.claim(si_title0)
james.claim(si_title1)
james.claim(si_title2)
james.claim(si_title3)
james.ideas.size.should eq 3
end
내가 못생긴 시험 미안 해요 ... 난 후 리팩토링에 대한 보간을 파악하려고 거라고 나는 그것이지나 가게한다. 위의 inspect
덤프 루프의 세 번째 또는 네 번째 반복에서 덤프입니다.
편집 2 : 그것은 데이터베이스에 저장 않습니다 ...
def claim(idea)
puts self.ideas.inspect
#claimed_count = self.ideas.where(status: "claimed").count
claimed_count = self.ideas.count(conditions: "status='claimed'")
puts "claimed_count is #{claimed_count.inspect}"
if idea.status == "available" && claimed_count < 3
self.ideas<<idea
idea.status = "claimed"
end
end
를 따라서 : 이것은 claim
은 무엇입니까? 그렇다면 어떻게 수정해야합니까?
"아이디어"모음을 어떻게 얻었습니까? 발표 할 때 이미이 상태로 데이터베이스에 저장 되었습니까? – PinnyM
'.size' 대신'.count'가 작동합니까? – Zabba
@PinnyM - 위의 호출 코드를 추가하도록 편집되었습니다. – ezuk