我遇到的情况是,用户能够研究一些技术并因此获得一些回报。现在,这些奖励有点像能够创造一些物品,获得生产提升等等。
我目前正在做的是在我的控制器中处理闪存消息和重定向。所以,想象一个案例,为了创造一个项目,你必须研究一种特定的技术。我的控制器就像:
def create
flash[:error] = I18n.t('error.not_researched') and redirect_to research_url and return if not current_user.has_research?(research)
....
....
end
好吧,当然这很好用,但我不确定这是做事的最佳方式。我想也许可以使用 before_create 过滤器来做到这一点,但是这样,我不能真正设置 flash 消息,它几乎超出了范围。
因此,我想问一下您将如何在最佳实践方面进行处理,以便代码尽可能 DRY 并且编写得尽可能好。