【问题标题】:Rails observer callbacks in controller控制器中的 Rails 观察者回调
【发布时间】:2011-01-13 22:33:27
【问题描述】:

我在我的 Rails 应用程序上设置了观察者,即 after_save(campaign) 观察者。

基本上,观察者在活动中寻找特定的标签,如果这些标签存在,它会在“成就”模型中创建一个新记录。

我要做的是,在活动控制器中,查看观察者是否创建了这些成就,如果是,则将用户重定向到该成就显示页面。

我确定有一个我不知道的简单功能......但是我应该使用什么?

提前致谢!

【问题讨论】:

    标签: ruby-on-rails callback controller observer-pattern


    【解决方案1】:

    没有代码,我会假设以下内容:

    CampaignAchievement 之间的某种关系

    基于此,您可以使用 ruby​​ 来做到这一点:

    @campain = #however you find the campaign
    if @campaign.include?(Achievement.find_by_tag(@tag))
      redirect_to achievements_path
    else 
      flash[:error] = "Not this time, dude."
      #something here to redirect if NO achievement
    end
    

    【讨论】:

    • 嗯,我想这个。如果我在观察者中使用 before_save(campaign),它几乎可以工作。问题来自,成就在他们的实际数据库记录中没有对标签的任何引用......标签只是在观察者中迭代。有没有类似的方法:Achievement.new?这会查看最近是否创建了任何成就(而不是 Achievement.find_by_tag(@tag))
    • 不,但您可以查看@campaign.acheievements.last 以查看它是何时创建的,然后用它来开展业务。您需要从广告系列中确定范围,否则您会找到所有用户和/或广告系列保存的 LAST 成就......这不是您想要的。
    猜你喜欢
    • 1970-01-01
    • 2011-12-29
    • 2010-12-04
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    相关资源
    最近更新 更多