2012-11-13 2 views
1

기존 Rails 애플리케이션으로 작업한다고 가정 해 봅시다. 응용 프로그램을 분해하는 가장 좋은 방법은 무엇입니까? 내가 레이아웃으로 시작하면레일에서 수율을 추적하는 방법

/application.html.erb 나는 하나 이상의 <퍼센트 수익률 %> 문을 볼 수 있습니다. 어떻게 브라우저에서 제시된 뷰에서 수익률을 생성하는 기본 코드로 쉽게 되돌아 갈 수 있습니까? 즉 : 모든보기에서 코드를 읽지 않아도됩니다.


이 질문에서 내가 원하는 것은 아니지만, 다른 누군가가 레일스에 도움을 얻는 데 도움이 될 것입니다. 나는 잠시 동안 레일 - 각주 gem을 사용 해왔다. 페이지에 footer를 추가합니다. footer는 모든 유용한 정보를 가지고 있습니다 : 인스턴스 변수, 뷰 정보 그리고 타이밍이있는 SQL 문조차도.

보석 '레일 - 각주'가

답변

2
디버거가 너무 복잡하면

, 당신은 추적을 더 찾고 파일의 경우 기본 로깅 출력을 사용하여 얻을 수 있습니다. 당신이 볼 수 있듯이

Started GET "/login" for 127.0.0.1 at 2012-11-27 17:52:16 -0600 
Processing by SessionsController#create as HTML  
    Rendered sessions/create.html.erb within layouts/application (1.0ms) 
    Rendered application/_header.html.erb (1.0ms) 
    Rendered application/_wrapper.html.erb (54.0ms) 
Completed 200 OK in 150ms (Views: 150.0ms | ActiveRecord: 0.0ms) 

는, 출력이 액세스 한 컨트롤러와 액션 (SessionsController#create)를 포함뿐만 아니라 다양한 부분 지문 : 요청을 할 때 예를 들어, 다음과 유사한 출력은 기본적으로 출력은 (예 : Rendered sessions/create.html.erb within layouts/application).

간결함과 디버거의 복잡성 사이를 찾고 있다면 rack-bug 또는 mini-profiler (railscast)과 같은 것을 시도 할 수 있습니다.

찾고있는 것이 단순히 좋은 IDE 일 수 있습니다. 일부 레일 전문가는 IDE를 사용한다는 아이디어를 비웃을 수도 있지만 초보자와 전문가 모두에게 많은 장점을 제공 할 수 있다고 생각합니다. 귀하의 경우, 비컨 포인트를 쉽게 설정하고 코드가 실행되는 동안 시각적으로 단일 단계를 거쳐 다양한 컨텐츠를 검사 할 수있는 이점을 얻을 수 있습니다. 나는 진짜로 RubyMine를 즐기고, 그것을 자유롭게 (자유롭지 않고, 그러나 자유로운 예심이 있고 경비의 값이있는 완전히) 추천 할 것입니다.

+0

안녕하세요, Brad 님이 귀하의 게시물에 대해 감사드립니다. rack-bug는 꽤 좋아 보인다 ... 많은 보석처럼 오래된 것으로 보인다. 나는 그것을 설치하는 것에 가야 할 것이다. – ardochhigh

+0

바로 위에, 레일스 각주를 이미 사용하고 있다는 것을 깨닫지 못했습니다. 비슷한 또 다른 옵션은 http://railscasts.com/episodes/368-miniprofiler?view=asciicast - 행운입니다. –

+0

나는이 토론을 반영하기 위해 답을 올렸고 게시 이후 나에게 일어난 몇 가지 추가적인 생각을 업데이트했다. –

1

당신은 루비 디버거를 사용할 수 있습니다 설치. 당신의 Gemfile에

  • 다음과 같습니다 :

    루비 1.9.3을 (당신이하지 않으면 응답 해주십시오)를 사용하는 가정하면, 다음을 수행 암시 gem 'debugger'

  • 실행 bundle
  • 을 저장 한 후
  • 컨트롤러에서 (또는 어디에서든지 사용하려는 경우) 코드 실행을 중지 할 위치 인 debugger을 배치하십시오.

이제 브라우저를 통해 앱을 실행하고 서버를 시작한 위치를 살펴보고 디버그 프롬프트가 표시되어야합니다.

당신은 다음과 않는 디버그 모드에서 서버를 시작할 수 있습니다

:

rails server --debugger 

Rails Guide - Debugging Rails Applications

+0

답해 주셔서 감사합니다. 보기 코드를 보는 것보다 어렵게 들립니다. 저는 "1 stop shop"을 찾고있었습니다. 여기서 나는 렌더 된 뷰로 시작할 수 있었고, 빌드 된 것을 쉽게 볼 수있었습니다. – ardochhigh

+0

미안하지만, 내가 생각할 수있는 "1 스톱 숍"은 실제로 당신이 요구하는 것을 구체적으로 말하지 않습니다. 그들은 모두 당신의 목적에 약간의 작업을 요구합니다. – Magicmarkker

1

어쨌든 코드가 깨지기를 원하면 raise Exception을 추가하는 것이 좋습니다. 그러면 스택 추적이 생성됩니다.

매우 조잡한 해결책입니다. @BradWerth가 제시하는대로 로거를 사용하는 경향이 있습니다. 실제로 레일 로그만으로도 충분합니다. 디버거는 여러분이 정말로 깊게 파고들 필요가있는 특정 상황에서 유용하지만, 제 경험상 설정하고 사용하는 것이 고통 스럽습니다 :-)