2012-03-25 2 views
1

をsign_inページに表示しないで、何も入力せずに「送信」をクリックします。ページが更新され、エラーメッセージは表示されません。私の見解では、[::警報]フラッシュ[告知]:deviseを使用したときに奇妙な動作が発生しました:フラッシュメッセージ

私はフラッシュ持っ

- if flash[:alert] 
    div.alert #{flash[:alert]} 
- elsif flash[:notice] 
    div.notice #{flash[:notice]} 

ロガーは言う:

Started POST "https://stackoverflow.com/users/sign_in" for 127.0.0.1 at 2012-03-25 12:38:49 +0800 
Processing by SessionsController#create as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"9a85NKpAj3ZJgKnzStvBA3sxGqrShgbUqbjiJrqQCAM=", "user"=>{"email"=>"", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"登陆"} 
Completed 401 Unauthorized in 0ms 
Processing by SessionsController#new as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"9a85NKpAj3ZJgKnzStvBA3sxGqrShgbUqbjiJrqQCAM=", "user"=>{"email"=>"", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"登陆"} 
    Rendered devise/shared/_links.html.slim (0.3ms) 
    Rendered devise/sessions/new.html.slim within layouts/one_column (5.1ms) 
    Rendered layouts/_navbar.html.slim (0.8ms) 
    Rendered layouts/site.html.slim (12.8ms) 
Completed 200 OK in 22ms (Views: 21.2ms | ActiveRecord: 0.0ms) 

私は

"Completed 401 Unauthorized in 0ms" 
で混乱しています

何か間違っていると思います。

しかしどこ?

答えて

0

ビューページを確認してください。 「フラッシュ」は使用しないでください。 (足場によって生成された)テンプレート

<% @post.errors.full_messages.each do |msg| %>  
    <li><%= msg %></li>  
<% end %> 

あなたはあなたのビューページで変数を変更する必要があり、そして「ユーザ名が空白であってはならない」または「用户名不能为空」のようなエラーメッセージが表示されますによると、中国語で。

+0

この文脈では '@ post'とは何ですか? –

0

私は同じ問題を持っていた、あなたが使用する正しい:

- if flash[:alert] 
    div.alert #{flash[:alert]} 
- elsif flash[:notice] 
    div.notice #{flash[:notice]} 

私の問題は、私は自分のconfig/locales定義された(en.yml、it.yml、など)を持っていましたが、私は工夫をコピーしていませんでしたconfig/locales/devise.en.ymlからのエントリ。簡単なテストとして

は、私が config/locales/en.ymlに次の追加:

en: 
    devise: 
    sessions: 
     signed_in: 'Signed in successfully.' 

サインインした後、flash[:notice]が動作を開始しました。

関連する問題