2011-12-03 5 views
1

양식 제출시 sexes_controller에서 "만들기"작업 제출, 실제로 페이지보기/결과/색인으로 리디렉션되도록 변경했습니다. 에서 제출 된,하지만 난 (페이지 즉, 양식에서 제출 된) 뷰/결과/인덱스의 맨 아래에레일스 : 동일한 페이지 양식으로 리디렉션시 플래시 메시지가 표시되지 않음

<%= flash[:notice] %> 

을하고 있어요하지만 지금은 플래시 메시지도 표시되지 않는, 어떤 내가 생각하는 방법이다 너는 그걸해야만 해.

플래시 메시지가 표시되지 않는 일종의 캐싱이 있기 때문에 그렇습니까? 그걸 어떻게 피할 수 있을지 알아? 좀 더 복잡 할 수도 있습니다 생각

업데이트

, 나는 결과 컨트롤러 뷰/결과 다시 다음

@flashbash = Sex.find(params[:id]) 

과의 index 액션에서 플래시 메시지를 검색하려고했습니다/색인

<%= if @flashbash flash[:notice] %> (I think this code is wonky) 

참고, 시도했지만 작동하지 않았습니다. 그것은 말했다, Couldn't find Sex without an ID

나는 이것을 고칠 수있는 아이디어?

답변

5

일반적으로 플래시는 응용 프로그램의 레이아웃 파일에 렌더링됩니다. 이렇게하면 잠재적으로 플래시 메시지가있는 모든보기에서 < % = flash [: notice] %>을 출력해야하는 중복을 피할 수 있습니다.

표시되지 않는 이유는 표시 할 항목이 플래시 [: notice] 변수에 설정되어 있는지 확인하십시오. 컨트롤러에서 생성 작용의 예는 다음과 같이 보일 수 있습니다 : http://guides.rubyonrails.org/action_controller_overview.html#the-flash

: 여기에 플래시 메시지에 대한

# app/controllers/sex_controller.rb 
def create 
    @sex = Sex.new(params[:sex]) 
    if @sex.save 
    flash[:notice] = "Saved successfully" 
    redirect_to @sex # This redirects to the show action, where the flash will be displayed 
    else 
    flash[:error] = "There were errors..." 
    render :action => :new # This displays the new form again 
    end 
end 

# app/layouts/application.html.erb 
<html> 
    ... 
    <%= flash[:notice] %> 
    <%= flash[:error] %> 
    <%= yield %> 
    ... 
</html> 

더 많은 정보

관련 문제