在Ruby on Rails 5.0.1中,如果你想要在Clearance gem中禁用闪烁消息(flash messages),你可以通过以下几种方法来实现:
你可以在控制器中检查是否需要显示闪烁消息,并根据条件决定是否添加到flash
中。
class ApplicationController < ActionController::Base
before_action :set_flash_messages
private
def set_flash_messages
flash.discard(:notice) if flash[:notice].blank?
flash.discard(:alert) if flash[:alert].blank?
end
end
你可以在视图中检查是否有闪烁消息,并根据条件决定是否显示。
<% if flash[:notice].present? %>
<div class="alert alert-success">
<%= flash[:notice] %>
</div>
<% end %>
<% if flash[:alert].present? %>
<div class="alert alert-danger">
<%= flash[:alert] %>
</div>
<% end %>
你可以在Clearance的配置文件中禁用闪烁消息。编辑config/initializers/clearance.rb
文件,添加以下代码:
Clearance.configure do |config|
# 其他配置...
config.middleware.use Clearance::Middleware, raise_on_unauthorized: false do |env|
request = Rack::Request.new(env)
if Clearance.configuration.allow_sign_in_without_confirmation?
env['clearance.flash'] = nil
end
end
end
你可以在路由中检查是否有闪烁消息,并根据条件决定是否显示。
Rails.application.routes.draw do
resources :sessions, only: [:new, :create, :destroy] do
get 'success', on: :collection, to: 'sessions#success'
end
end
然后在SessionsController
中:
class SessionsController < ApplicationController
def success
flash[:notice] = 'You have successfully signed in.'
redirect_to root_url
end
end
通过以上方法,你可以根据需要在Ruby on Rails 5.0.1中禁用Clearance gem的闪烁消息。选择适合你项目需求的方法进行实现。
领取专属 10元无门槛券
手把手带您无忧上云