我的应用程序中的 Flash 消息存在问题。实际上,在我的应用程序中,我使用了用于用户身份验证的设计,并且我的应用程序使用了 ruby 1.9.3 和 rails 3.2.2。
当用户登录、注销并注册新帐户时,设备 flash[:notice] 工作正常。
在 Rails 中 flash[:notice] 和 flash[:alert] 是默认的 flash 消息。
刷新消息仅在页面重新加载或用户从一页到另一页否定时显示一次
问题是当用户登录时,设备 flash[:notice] 正在显示,但是当我重新加载页面时 flash[:notice] 正在显示,但在 rails 中 flash[:notice] 只会显示一次
实际上问题是当我尝试创建一个新帖子时,我已经重定向到显示页面,并且我已经为 flash 消息编写了辅助方法,我从应用程序布局中调用了这个方法来显示 flash 消息。
在控制器创建方法中
def create
@asset = Asset.new(params[:asset])
@asset.user_id = current_user.id
respond_to do |format|
if @asset.save
format.html { redirect_to @asset, alert: 'Asset was successfully created.' }
format.json { render json: @asset, status: :created, location: @asset }
else
format.html { render action: "new" }
format.json { render json: @asset.errors, status: :unprocessable_entity }
end
end
end
显示 flash 消息的 Helper 方法
FLASH_TYPES = [:error, :warning, :success, :message,:notice,:alert]
def display_flash(type = nil)
html = ""
if type.nil?
FLASH_TYPES.each { |name| html << display_flash(name) }
else
return flash[type].blank? ? "" : "<div class=\"#{type}\"><p>#{flash[type]}</p> </div>"
end
html.html_safe
end
我已经从应用程序布局中调用了这个方法
= display_flash
我尝试过使用 flash[:alert]、flash[:error]、flash[:message] 但视图页面上没有消息显示,我尝试过使用名为 flash_message 的 gem,这也只显示 flash[:notice]
请帮我解决这个问题