我配置了标准的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
是的我知道这是设置为扫描程序 - 它与Observer基本相同但可以访问link_to方法,但它似乎没有配置路由。 profile_path和tip_path方法都是nil。
也许有另一种方法可以达到这个目的?或许更“Rails Way”?
如果有一种方法可以使用message.body的视图模板创建消息,那将是非常好的。
有什么建议吗?
答案 0 :(得分:1)
如果您需要访问控制器外部的路由,请包含ActionController :: UrlWriter模块。