0

我配置了一个标准的 rails 观察者:

class TipObserver < ActionController::Caching::Sweeper
  observe Tip
  def after_save(tip)
    profile_link = link_to tip.profile.name, profile_path(tip.profile)
    Profile.followers(tip.quality).each{|profile|
      message = Message.new
      message.sender = Profile.first
      message.recipient = profile
      message.subject = "New Tip #{tip.name}"
      tip_link = link_to tip.name, tip_path(tip)
      message.body = "Hey #{profile.name}\n Here is a tip for you..#{tip_link} from #{profile_link}"
      message.save!
    }
  end
end

是的,我知道这是设置为 Sweeper - 它与 Observer 基本相同,但可以访问 link_to 方法,但它似乎没有配置路由。profile_path 和 tip_path 方法为零。

也许还有另一种方法可以实现这一目标?也许更“铁路方式”?

如果有一种方法可以使用 message.body 的视图模板创建消息,那就太好了。

有什么建议么?

4

1 回答 1

1

如果您需要访问控制器外部的路由,请包含 ActionController::UrlWriter 模块。

于 2010-08-14T14:38:23.117 回答