2014-04-17 10 views
-1

이 서문을 설명하기 위해 나는 루비와 레일을 처음 사용하지만 숙제를 완료했으며 실제로이 작업을 수행하고 있다고 생각했습니다. 그래서 내 레일 컨트롤러에서 Input이라는 또 다른 클래스를로드하고 있습니다. Input 클래스의 인스턴스를 만들고 calc_value를 호출하려고합니다.인스턴스 메서드에서 정의되지 않은 메서드 오류

foo = Input.new "foo", 10, 120 
render json: foo.calc_value 

나는로드의 모든 올바르게 설정임을 알고 난 내가 (내가 calc_value를 호출하지 않고 그 자체로 변수를 렌더링 시도)가 제대로 foo는 초기화 할 수 있다는 것을 알고. 하지만 calc_value를 호출하면 정의되지 않은 메서드 'calc_value'for #가 나타납니다.

class Input 
    def initialize (n = "", v = 0, m = 0) 
     @name = n 
     @value = v 
     @maxValue = m 
    end 

    def calc_value 
     @value 
    end 
end 

내가이 간단 할 것이라고 생각 나는 클래스 변수와 인스턴스 변수와 메소드 대 방법에 대해 또 다시 모든 것을 읽고 :

여기 내 입력 클래스입니다. 나는 나의 지혜 끝에 여기있다.

+4

여기에 표시 한 내용이 없으면 오류가 발생합니다. 당신의 모든 일이 저장되었는지 확신합니까? 'Input'은 자동으로로드됩니까? 그렇지 않다면 서버를 다시 시작해 보셨습니까? –

+0

나는 그 일을 올바르게하고 있고, 그 간단한 문제를 해결하기 위해 어리 석음처럼 행복한 것을 느낀다. 방금 서버를 다시 시작해야했습니다. 지금 당장 당신에게 백만 쿠키를 줄 수 있다면. 고마워요 :) –

+0

Thanks @PierreTasci. 내가 그들을 먹을 것이기 때문에 당신이 나에게 백만 쿠키를 줄 수 없다는 것은 좋은 일이다. –

답변

0

대답은 단순히 로컬 서버가 다시 시작해야한다는 것입니다. 왜 그런지는 모르지만 그것을 고쳐 줬습니다.

0

귀하의 레일 애플 리케이션은 그것이 있어야한다고 생각하는 방법을 찾을 수없는 것 같습니다.

등급은 어디에 있습니까? Rails 용 사용자 정의 클래스를 넣을 곳은 lib/폴더이며 require를 사용하여로드 한 후에 호출됩니다. 올바른 설정 유형은 this answer을 참조하십시오.