4

私はコントローラーのステータスから使用しています:

  flash[:notice] = 'message'
  redirect_to(controller: 'item', action: 'list')

通知が表示されない理由がわかりません。

私は多くのことを試し、チェックしました:

  1. flash.keep
  2. flash.keep[:notice] = 'message'
  3. flash[:notice]で正常に動作しますrender
  4. redirect_to(controller: 'item', action: 'list', notice: 'message')
  5. flash.now[:notice] = "Hello world"
  6. flash.now['foo'] = "Hello world"<%= flash['foo'] %>ビューで
  7. レイアウトに<%= flash [:notice]%>があります

次のコードをレイアウトに配置します。コントローラーメソッドに同じ名前のビューがある場合、flash [:notice]は正常に機能します。ビューがない別のコントローラーに到達しようとすると、問題が発生します。

<% if !flash[:notice].blank? %>
    <div class="notice">
        <%= flash[:notice] %>
    </div>
<% end %>

<% if !flash[:alert].blank? %>
    <div class="alert">
        <%= flash[:alert] %>
    </div>
<% end %>   

誰か助けてもらえますか?

情報:

  • Ruby(2.0.0)
  • Rails(3.2.13)
4

3 に答える 3

5

Railsguide: http: //guides.rubyonrails.org/action_controller_overview.html#the-flash

これは完全に正常に機能するはずです。

flash[:notice] = "My message"
redirect_to root_url

または:

redirect_to root_url, notice: "Hello world"

ただし、ビューに通知を表示するのを忘れている可能性もあります。したがって、通知はまったく表示されません。

たとえば、次のようなものが表示されます。

<% if flash[:notice] %>
  <p class="notice"><%= flash[:notice] %></p>
<% end %>
于 2013-03-25T18:15:19.233 に答える
0

使ってみてください

flash.now['foo'] = "Hello world"
于 2013-03-25T18:01:19.507 に答える
0

何が起こったのかわかりません。

私はruby2.0.0にアップデートしました、そしてそれはちょうど再び働き始めました...

于 2013-03-28T20:59:17.873 に答える