0

サインイン フォームで、ユーザーがサインイン ボタンをクリックしてサインインすると、サインイン フォームはセッション リソースを介して create アクションを呼び出します。

アクションは次のとおりです。

 def create
   user = User.find_by_email(params[:session][:email].downcase)
   if user && user.authenticate(params[:session][:password])
     #Sign the user in and redirect to user's main page
   else
    flash[:error] = "Invalid email/password combination"
    render 'new'
  end
 end      

flash[:error] は機能していませんが。

静的ページコントローラーに「flash[:notice]」を配置して、ホームページがリダイレクトされるたびに通知をフラッシュしようとしましたが、それも機能しません。

私のテストスーツは私にこのエラーを与えます

Failure/Error: it { should have_selector('div.alert.alert-error', text: 'Invalid') }
   expected css "div.alert.alert-error" with text "Invalid" to return something

これは私の css に問題がありますか?

ご協力いただきありがとうございます!

4

2 に答える 2

2

レイアウトまたはビューテンプレートにフラッシュを表示するコードを追加しましたか?

Bootstrapを使用しているように見えるので、レイアウトファイル(views/layouts/application.html.erbまたは他のレイアウト)でこれと同様のことを行うことができます。

<% flash.each do |key, message| %>
  <div id="flash-<%= key %>" class="alert alert-<%= key %> fade in">
    <button class="close" data-dismiss="alert">&times;</button>
    <%= message %>
  </div>
<% end %>
于 2012-08-24T14:37:43.197 に答える
2

後でビューをレンダリングしているので、おそらく flash.now[:error] を使用する必要があります。

flash.now[:error] = "Invalid email/password combination"

http://apidock.com/rails/ActionDispatch/Flash/FlashHash/now

于 2012-08-24T14:25:57.000 に答える