2013-07-14 27 views
0

我确信这里有答案,但我不完全确定如何恰当地说出这个问题,所以如果这是重复的,我很抱歉。如何在Rails中发生事件时触发模态

我正在为网站实施徽章/成就系统。后端的东西在那里,但我现在正在开发前端,而我基本上正在设法弄清楚如何重定向到某种“恭喜!”。有人获得新徽章时的页面。

祝贺页面将成为一种模式,但为了简单起见,如果任何人有创建新徽章时只触发一次此类动作的想法,这将是一个巨大的帮助。现在,当用户执行给定操作时,比如说...向他们的帐户添加资金,会创建一个user_badge(将徽章ID添加到数组中)。

在此先感谢!

+0

你的意思是jQuery的UI模式??? – beck03076

回答

0

您可以使用before_filter进行操作,在那里您要检查是否出现了新徽章(可能您不希望在身份验证操作中检查它,因此您无法使用全局before_filter)。那么如果用户有新徽章,则可以在筛选前使用redirect_to

但是我不建议这样做,因为您会打破用户流。最好在下一个请求的页面上显示警报/模式。为了达到这个目的,你可以在你的before_filter(如@show_modal)中定义一个新的实例变量,并将包含模态的部分包含到页脚中。

例如:

#before filter 
def check_for_new_badges 
    if current_user.has_new_badges? 
    @show_modal = true 
    current_user.set_badges_as_seen! 
    end 
end 

#included in layout 
- if @show_modal 
    = render 'shared/congrats_modal' 
相关问题