开发者

Getting a Rails Observer or Sweeper access to link_to OR rendering a view to string from within an Observer

I have a standard rails observer configured:

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

Yes I know this is set up as a Sweeper - its basical开发者_开发技巧ly the same as an Observer buthas access to the link_to method, however it doesn't seem to have the routes configured. profile_path and tip_path methods are nil.

Perhaps there is another way to achieve this? Perhaps a more "Rails Way"?

It would be really nice if there was a way to create the message with a view template for the message.body.

Any suggestions?


If you need access to the routes outside of a controller, include the ActionController::UrlWriter module.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜