0

1ページを除いて、すべてのフラッシュ通知をヘッダーの下に配置する必要があります。

1ページだけに別の場所に配置する必要があります。

編集

この行に別のレイアウトを使用したいアクトンを追加しました。

  render :layout => 'show'

そして今、私がページを表示しようとしているとき、それは私に与えます:

  undefined method `url' for nil:NilClass

ただし、このレイアウトをレンダリングせずに-エラーはありません。

編集

Railsで可能ですか?

4

2 に答える 2

2

思いつきで、ビュー内の現在の controller#action をチェックして、フラッシュ メッセージを移動する必要があるかどうかを確認できます。

Rails はこれらのパラメーターをすべてのビューに渡します (例: のshowアクションを実行中の場合UsersController):

params[:controller] #=> users
params[:action]     #=> show

ビューの条件を単純化するヘルパーを追加できます。

# file: app/helpers/application_helper.rb
def move_flash_messages?
  params[:controller] == "users" && params[:action] == "show"
end

次に、レイアウトで次の簡単なチェックを行います。

# file: app/views/layouts/application.html.haml
- unless move_flash_messages?
  = flash_messages
...
- if move_flash_messages?
  = flash_messages
于 2012-10-04T16:25:25.597 に答える
0

どこでも簡単にフラッシュ メッセージを表示できます。

  <% flash.each do |name, msg| %>
    <%= content_tag :div, msg, class: "flash notice" , id:"flash_notice" %>
  <% end %>

ここにフラッシュメッセージのcssがあります

div.flash.notice {
  background: url(../images/true.png) 8px 5px no-repeat;
  background-color: #dfffdf;
  border-color: #9fcf9f;
  color: #005f00;
}
于 2015-06-30T13:08:40.130 に答える