在Rails 4应用程序中增加单个flash [:error]消息的显示持续时间最简单/最好的方法是什么?
执行消息的代码位于控制器中,相关部分如下所示:
else
flash[:notice] = t(:no_new_media, source: @channel.external_source.capitalize)
flash[:error] = @error['message'] if @error.present?
redirect_to admin_channel_path(@channel)
end
我想增加错误消息的显示持续时间,但我不关心通知
答案 0 :(得分:0)
我认为您应该创建一个新的自定义Flash消息类型。更多细节here。
# app/controllers/application_controller.rb
class ApplicationController
...
add_flash_types :error, :another_custom_type
end
# app/controllers/users_controller.rb
class UsersController < ApplicationController
def create
...
redirect_to home_path,
another_custom_type: "An error message for the user"
end
end
现在在您的视图中检查flash[:another_custom_type].present?
并在此基础上设置消息的持续时间。
答案 1 :(得分:0)
我不确定,但您可以尝试这样: reference
$('document').ready(function() {
setTimeout(function() {
$('#test').slideUp();
}, 5000);
});
我认为带有flash消息的HTML元素的id是#test,这将在5000毫秒(5秒)后隐藏它。
或强>
app/assets/javascripts/application.js.coffee
$ ->
flashCallback = ->
$(".flash-message").fadeOut()
$(".flash-message").bind 'click', (ev) =>
$(".flash-message").fadeOut()
setTimeout flashCallback, 3000
希望这会对你有所帮助。