0

Rails に組み込まれている FLASH メッセージの解析についていくつか質問があります。

<% flash.each do |key, value| %>
    <div id="flash_message" class="alert alert-<%= key %>">
        <%= value %>
    </div>
    <% end %>

これにより、メッセージが正常に出力され、正常に機能する jQuery フェードアウト機能があります。

問題 - 複数のメッセージをフラッシュ アレイに入れたい場合はどうなりますか?

 flash[:success] = ["Job edited successfully"]
else
  addNewJob(params,@cust)   
      flash[:added] = "Job Added Successfully" 
end
if upd
  flash[:success] << "Customer Info Edited Successfully"
else
  flash[:error] = "ERROR: Customer info could not be edited!"
end

ここでは、2 つの要素を flash[:success] にプッシュしています。SO やその他の場所に関する他の投稿によると、flash.each はそれらを配列から取り出す必要があるため、これで問題ありません。

しかし、そうではありません:

<div id="flash_message" class="alert alert-success">
        ["Job edited successfully", "Customer Info Edited Successfully"]
    </div>

これはページ ソース出力であり、ページ上ではそのように見えます - 配列全体を並べ替えの文字列として表示し、全体をフェードします。

私が期待したこと:

ジョブが正常に編集されました 顧客情報が正常に編集されました

2 つのラインで、両方が同時にフェードします。

ヘルプ?

4

1 に答える 1

1

テンプレートを次のように変更します。

<% flash.each do |key, value| %>
    <% Array.new(value).each do |elem| %>
        <div id="flash_message" class="alert alert-<%= key %>">
            <%= elem %>
        </div>
    <% end %>
<% end %>
于 2013-06-25T00:52:56.330 に答える