2012-03-07 2 views
0

"web_app_theme"보석을 사용하고 있습니다. 문제는 플래시 오류 및 경고 메시지가 작동하지 않는다는 것입니다.레일 3. 일부 페이지에서 "플래시"가 작동하지 않습니다.

예를 들어, 로그인 페이지에서 작동합니다. 그러나 Forgot Password 페이지에서는 작동하지 않습니다. 플래시 <%= debug flash %>의 내용을 표시하여 테스트했습니다. 이것은 내가 로그인 페이지에서 무엇을 얻을

...

!ruby/object:ActionDispatch::Flash::FlashHash 
      used: !ruby/object:Set 
      hash: 
       :alert: true 
      closed: false 
      flashes: 
      :alert: Invalid email or password. 
      now: !ruby/object:ActionDispatch::Flash::FlashNow 

하지만 얻을 비밀번호 분실 페이지에서

...

!ruby/object:ActionDispatch::Flash::FlashHash 
    used: !ruby/object:Set 
     hash: {} 
    closed: false 
    flashes: {} 
    now: !ruby/object:ActionDispatch::Flash::FlashNow 

나는 그것이 될 수 있다는 생각 해요 haml을 사용하지 않는 것과 관련된. 로그인 페이지에서 haml을 사용하고 있지만 비밀번호 분실 페이지에서 erb를 사용하고 있습니다. '플래시'의 내용이 형식에 관계없이 동일해야하기 때문에 혼란 스럽습니다. 맞습니까?

답변

0

사용하는보기 코드가 거의 없습니다.

귀하의 질문에, 비밀번호 분실 페이지의 플래시가 설정되지 않았 음이 분명합니다. 또는 설정 또는 삭제되었습니다. HAML 또는 ERB를 사용하면 Rails 플래시가 두 페이지에 모두 존재하므로 관련이 없습니다.

동일한 컨트롤러 코드를 확인하고 해당 페이지의 플래시가 무엇인지 확인하십시오.

또한 엄격한 규칙은 없지만 은 하나의 응용 프로그램에서 하나의 템플릿 /보기 엔진 (erb 또는 haml) 만 사용하도록 강력히 권고합니다.

0

비밀번호 분실 페이지에서 flash 개체가 설정되어 있고 페이지가 렌더링되었거나 설정 중이며 리디렉션이 발생 했습니까?

flash의 일반적인 사용 예는 할당 한 다음 플래시가있는 다른 페이지로 리디렉션하는 것입니다. 대신 쓰는

flash를 사용하고 (예를 들면 다음 템플릿을 렌더링으로) 동일한 작업에서의 내용을 표시하려면 (예)

flash[:notice] = 'Foo Bar' 

당신은 또한

flash.now[:notice] = 'Foo Bar' 
+0

쓰기, 패스워드를 잊어 버렸습니다. 페이지에 대한 플래시 객체의 예상 내용은 무엇입니까? 당신이 제공 할 수있는 컨트롤러 액션 코드가 있습니까? 아니면 모두 그 보석 안에 포함되어 있습니까? –

관련 문제