2012-05-06 2 views
0

Ruby-On-Rails에서 작은 응용 프로그램을 개발 중입니다. 무기 호에 대한 정의되지 않은 메서드`+ '(Heroku RoR 응용 프로그램에서 정의되지 않은 메소드 '+'

NoMethodError :

@user = User.find(current_user.id) 
@user.number = current_user.number + 1 
@user.save! 

는 로컬에서 문제없이 실행되지만, 그것은 다음과 같은 오류와 함께, 라인이에서에게 Heroku에 충돌 : 컨트롤러에서 나는이 코드 조각이 : NilClass)

문제를 해결하는 방법에 대한 팁?

답변

3

당신이 0

에 기본 상태를 설정 새로운 마이그레이션을 작성하고 번호 열을 다시해야 데이터베이스에 속성으로 숫자를 저장하는 경우.

def change 
    remove_colum :users, :number 
    add_column users, :number, :integer, :default => 0 

    #ensure that all users with number == nil have got 0 instead nil 
    User.where(:number => nil).update_all(:number => 0) 
end 
+0

? 혼동스러워. – Kashyap

+0

보통 current_user는 인증의 도우미이며 거기에있는 사용자 인스턴스입니다. current_user.class를 호출하여 User 클래스를 가져와야한다. – Suborx

1

당신도이 작업을 수행 할 수 있습니다 : 이것은 아마도 CurrentUser 클래스에 수행해야

@user.number = current_user ? current_user.to_i : 0 
@user.save! 
관련 문제