避免 application.html.erb 在 rails 应用着陆页上显示 Flash 通知
avoiding application.html.erb for flash notices on rails app landing page
我为我的 rails 4 应用程序设计了两个 flash 通知。 First 应该出现在所有页面上(当事件发生时),所以我将它写在我的 application.html.erb 文件中。第二个应该只出现在带有自定义 CSS 的着陆页上。
现在,两者都显示在着陆页上。我怎样才能避免第一个(写在application.html.erb)只用于我的着陆页?
如果您想避免为特定 controller
或 action
呈现 Flash 通知,那么您可以这样做 -
<% unless params[:action] == 'something' %>
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
<% end %>
您可以在 application.html.erb
中检查控制器和操作以显示类似以下的闪现消息:
考虑根路径:root "home#index"
其中 home
是控制器,index
是动作。
<% unless controller_name == 'home' && action_name == 'index' %>
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
<% end %>
它对你有用,而且我希望你尝试一下 gem 'metamagic'
以备将来考虑。
我为我的 rails 4 应用程序设计了两个 flash 通知。 First 应该出现在所有页面上(当事件发生时),所以我将它写在我的 application.html.erb 文件中。第二个应该只出现在带有自定义 CSS 的着陆页上。
现在,两者都显示在着陆页上。我怎样才能避免第一个(写在application.html.erb)只用于我的着陆页?
如果您想避免为特定 controller
或 action
呈现 Flash 通知,那么您可以这样做 -
<% unless params[:action] == 'something' %>
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
<% end %>
您可以在 application.html.erb
中检查控制器和操作以显示类似以下的闪现消息:
考虑根路径:root "home#index"
其中 home
是控制器,index
是动作。
<% unless controller_name == 'home' && action_name == 'index' %>
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
<% end %>
它对你有用,而且我希望你尝试一下 gem 'metamagic'
以备将来考虑。