2013-07-24 5 views
0

튜토리얼의 매우 간단한 레일 프로젝트에서 나는 rails generate scaffold Event title:string date:date description:text을 실행합니다.레일스 모델 스 캐 폴딩이 제대로 작동하지 않습니다.

def show 
end 

나는이 방법은 비어 있어야되지 않고 같은 것들을 포함해야 볼 코스의 비디오에서 : 나는 EventsController.rb을 열 때 나는 쇼 방법이 비어있는 것을 볼 것을 제외하고 모두 괜찮습니다 @event = Event.find(params[:id]). 무엇이 문제 일 수 있습니까?

+1

'before_filter' 어딘가에 있었습니까? –

+1

레일 4를 사용하고 있습니까? (당신은 Gemfile에서 확인할 수 있습니다) –

+0

네, before_filter에 있고 네, Rails 4를 사용하고 있습니다. Marek, 답변으로 게시 해주세요. 고맙습니다! –

답변

0

레일 4에서는 id를 기반으로 특정 리소스를 얻는 데 스타일이 변경되었습니다. 따라서 before_folter 섹션으로 이동합니다.

당신의 컨트롤러는

before_action :set_event, only: [:show, :edit, :update, :destroy] 

def set_event 
    @event = Event.find(params[:id]) 
end 

컨트롤러 개인 방법을 참조하십시오처럼 될 수있다.

+0

빠른 답장을 보내 주셔서 감사합니다. 실제로 이것이 사실입니다. 하나 더 작은 것은 : @user = Event.find (params [: id]) 부분을 다루지 만, show 메소드 나 private 메소드에 존재하지 않는'respond_to do | format |'은 여전히 ​​존재합니다 . 이 경우 형식에 따라 어떻게 반응합니까? –

+1

필요하지 않습니다. 응답에 따라 자동으로 응답합니다. –

+1

예, 정확합니다. 또한 show.json.jbuilder 파일을 보았습니까? views/users/디렉토리 아래에 있습니다. 이것은 레일 4가 추가 된 새로운 기본 기능 (gem jbilder)이기도합니다. 따라서 /users.json에 액세스하면이 파일이 렌더링됩니다. – Mohanraj