2017-01-25 5 views
0

개발 모드에서 레일즈 5.0 앱 페이지에서 오류가 발생하면 아래 스크린 샷과 같이 페이지 하단에 레일 web-console이있는 오류 페이지가 표시됩니다. 콘솔은 오류가 발생한 해당 컨트롤러의 메서드를 실행하는 데 매우 유용합니다.모든 페이지에 레일즈 콘솔 보이기

Sample console

는 모든 페이지에서 활성화하는 그래서 오류 페이지없이 액세스 할 수 수 있습니까?

+1

터미널에'레일 c '를 사용하지 않는 이유는 무엇입니까? –

+0

개인적으로 저는 터미널에서'레일 콘솔 '을 많이 사용하지 않았습니다. 내가하려고하는 것은 '컨트롤러'에있는 메소드를 실행하고'모델 '이므로 예상대로 작동하는지 확인할 수있다. 제가 페이지에 가져 오려고하는 이유는, 제가 컨트롤러의 일부인 페이지에있을 때 컨트롤러의 일부인'메소드 '를 실행할 수 있기 때문입니다. –

+0

이것이 컨트롤러의 테스트 방법을위한 것이면 단위 테스트를 작성하는 것이 좋습니다. 원하는 결과로 먼저 테스트를 작성한 다음 테스트가 통과 할 때까지 컨트롤러를 수정하십시오. 테스트 주도 개발 (TDD) –

답변

1

web-console gem page에서 응용 프로그램의 모든 페이지에서 콘솔을 수동으로 실행할 수 있다고 말합니다. 문서에서는 다음과 같이 말합니다.

예를 들어보기에서 콘솔을 호출하면보기 바인딩의 컨텍스트에서 현재 페이지에 콘솔이 표시됩니다.

class PostsController < ApplicationController 
    def new 
    console 
    @post = Post.new 
    end 
end 

방법은 커널에서 정의하고 호출 할 수 있습니다 : 컨트롤러에 콘솔을 호출

<% console %> 

는 컨트롤러 액션의 맥락에서 콘솔가 발생합니다 그것은 모든 응용 프로그램 코드입니다.

요청 당 한 번만 콘솔 호출을 허용합니다. 여러 사람이있을 경우 WebConsole :: DoubleRenderError가 발생합니다.

어쩌면 이렇게하면 원하는 페이지에서 콘솔을 호출하는 데 도움이됩니다.

+0

컨트롤러'정의되지 않은 로컬 변수 또는 메소드'console '에 넣을 때 다음과 같은 오류가 발생합니다. –

+0

그것은 나를 위해 작동합니다. 여기에서 테스트했습니다. 'webconsole', '> = 3.3.0'및 'listen', '> = 3.0.5'와 같은 버전의 gem을 사용하고 있는지 확인하십시오. –