모두 좋은 하루였습니다.레일 메서드가있을 때 루프에 NoMethodError가 발생했습니다.
내 개발 환경에서 스크립트를 실행하는 데 약간의 문제가 있습니다. 비록 내 dev 환경에서 제대로 작동하지만. 필요한 모든 보석 등이 동일한 버전인지 확인했습니다.
이 스크립트는 script/runner 명령으로 실행될 예정입니다.
def currentDeal
marketTime = self.convertToTimeZone(Time.new)
deal = Deal.find(:first, :conditions => ["start_time ? AND market_id = ? AND published = ?", marketTime, marketTime, self.id, 1])
return deal
end
markets = Market.find(all)
markets.each do |market|
deal = market.currentDeal
puts deal.subject
end
지금 convertToTimeZone 모델에 부착하는 방법입니다 : 여기
가 생겼 부분을 중심으로 내가 할 노력하고있어의 슈퍼 응축 버전입니다. 그래서,이 코드는 내 dev 컴퓨터에서 잘 작동합니다. 그러나 내 생산 기계 결과에 그것을 실행하려고 : 그러나 내가 생산 상자의 콘솔에 가면
undefined method `subject' for nil:NilClass (NoMethodError)
이 수행
def currentDeal
marketTime = self.convertToTimeZone(Time.new)
deal = Deal.find(:first, :conditions => ["start_time ? AND market_id = ? AND published = ?", marketTime, marketTime, self.id, 1])
return deal
end
market = Market.find(1)
deal = market.currentDeal
puts deal.subject
그것은 올바른 값을 반환합니다, 문제 없어. 그래서 무슨 일이 일어나고있는거야?
이것은 두 시스템에서 레일 v 2.3.5에 있습니다. 당신은 당신의 생산 코드에 대한 모든 Market
의 불구하고 반복되지만, 테스트 조각 하나만을 찾고
Deal.find 호출에서 marketTime 인수를 복제 한 것 같습니다. – Fred