0

我确信那里有一个答案,但我不完全确定如何正确表达这个问题,所以如果这是重复的,我很抱歉。

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

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

提前致谢!

4

1 回答 1

0

您可以使用before_filterfor 操作,您想要检查新徽章是否出现(可能您不想在 auth 操作中检查它,因此您不能使用 global 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'
于 2013-07-14T10:42:39.983 回答