2012-06-15 7 views
1

저는 레일을 배웠고 어디서나 답을 찾지 못하는 것 같아요.Ruby on Rails가 업데이트가 지연됩니다.

레일을 배우기 때문에 localhost가 실행 중일 때 코드를 약간 수정 한 다음 브라우저를 새로 고침하여 변경하려는 내용이 정확한지 확인하십시오. 이것은 뷰, CSS, HTML, 루팅 등의 변경을 위해 작동합니다.

그러나 지금 나는 루비 클래스를 변경할 때 다른 루비 클래스를 호출하는 컨트롤러 파일을 변경하고 있습니다. 그들은 즉시 나타나지 않습니다. 내가 아는 방식은 Ruby 클래스의 다양한 printf 함수를 사용하여 현재 상태를 보여 주며 하나를 추가하고 다시 실행하면 서버를 종료하고 다시 시작하지 않으면 표시되지 않습니다.

의견이 있으십니까? 이것은 알려진 문제입니까? 이

# in config/application.rb: 

# Custom directories with classes and modules you want to be autoloadable. 
config.autoload_paths += %W(#{config.root}/extras) 

당신이 자동으로 적재 할 폴더를 쓰기 : 당신은 자동로드 사용자 정의 파일이 들어있는 폴더를해야

답변

2

.

경고 : 이름은 매우 중요 : 파일이 그들이 정의하는 클래스/모듈로 지정해야합니다 (모델, 컨트롤러, 등 등)에 :

  • foo.rb는
  • 푸 costant를 정의해야합니다 foo/bar.rb는 Foo : Bar costant를 정의해야합니다.

이 명명 규칙이없는 파일은 자동로드 할 수 없습니다. 그 이유는 자동로드 작업과 관련이 있습니다 : 코드 호출에서 f.e. Foo 상수가 있고 상수가 누락 된 경우 Rails는 자동로드 경로에이 명명 규칙을 따르는 파일이 있는지 여부와로드 여부를 확인합니다.

+0

그래서 내 외부 루비 코드는 "car.rb"라는 파일이고 내부에 "Car"라는 클래스를 정의합니다. 필자는 필요한 명명 규칙을 따르는 것으로 생각합니다. 클래스 외에도 파일에는 클래스에서 작동하는 필자가 작성한 메서드에 대한 def가 들어 있습니다. "config.autoload_paths + = % W (# {config.root}/app/controllers)"를 사용하고 있어도 변경하지 못했습니다. – startuprob

+0

파일은 Rails는 app/controllers의 파일이 컨트롤러가되기를 기대하기 때문에 컨트롤러 폴더에 있어야합니다. 새 폴더를 만들 것을 제안합니다. (보통 lib/# {app_name}을 사용합니다.)이 새 폴더에 Car 클래스를 이동하십시오. – mdesantis

+0

이것은 슈퍼 멍청한 소리가 들리 겠지만 lib에서로드 할 수 없습니다. 나는 [require 'car.rb'] 만 사용하려고 시도했는데로드 오류가 발생합니다. 또한 lib/car.rb 및 lib/assets/car.rb와 같은 다양한 경로를 시도했지만 그 중 하나도로드되지 않습니다. – startuprob

관련 문제