2011-10-20 1 views
27

레일 콘솔 사용과 관련하여 모델을 약간 변경하면 매번 레일 콘솔을 다시로드해야 변경 사항이 반영됩니까?레일 콘솔 다시로드

class Article < ActiveRecord::Base 
    validates :title, :presence => true 
    validates :body, :presence => true 
end 

나중에 내가 다음과 같이 몇 가지 추가 속성을 추가하려면, 다음과 같이 예를 들어

, 내 원래의 코드가 있습니다.

class Article < ActiveRecord::Base 
    validates :title, :presence => true 
    validates :body, :presence => true 

    def long_title 
    "#{title} - #{published_at}" 
    end 
end 

"reload!"명령을 실행해야합니까? "long_title"메서드 호출을 할 수있을 때마다? 그렇지 않으면 속성이 정의되지 않았기 때문에 오류가 발생합니다. 왜 수동으로 수행해야합니까?

답변

44

예, reload!을 불러 와야합니다.로드 된 상수가 지워지고 콘솔에서 참조 된대로로드됩니다.

reload! 이전의 개체가있는 경우 새 개체를 시도하거나 새로운 개체를 찾고 해당 작업을 수행해야합니다. reload

대신 RSpec과 같은 테스트 프레임 워크를 검토하여 응용 프로그램에 대한 반복적 인 테스트와 안전망을 제공하는 것이 좋습니다.

RSpec이 더 적합한 응용 프로그램의 새로운 기능을 테스트하는 도구로 콘솔을 사용하려는 것 같습니다. 콘솔은 실험에 정말 좋습니다. 그들은 을 참조 한 후

4

rails console하지 재 장전 수업을한다.

만약 그렇다면 모든 명령에 대해 어떤 파일이 변경되었는지 파악하려면 파일 시스템을 호출해야합니다. 반면에 개발 모드에서 요청 사이에 변경된 클래스를 다시로드합니다.

rails server

나는 시작 시간이 rails console이므로 콘솔을 열어 놓고있는 것으로 추측하고 있습니다. 응용 프로그램이 무엇인지 잘 모르겠습니다. 개발 중에 콘솔이 열려있는 이유는 확실하지 않습니다. 그러나 변경 사항을 확인하려는 경우 단위 테스트 또는 rspec으로 테스트하는 것이 좋을 수 있으며 그 시점에서 시작 시간을 단축하기 위해 스포크를 사용할 수 있습니다.