Получение доступа Rails Observer или Sweeper к link_to ИЛИ отображение представления в строку из Обозревателя - PullRequest
0 голосов
/ 14 августа 2010

У меня настроен стандартный рельс наблюдателя:

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 имеют значение nil.

Возможно, есть другой способ добиться этого? Возможно, более "Rails Way"?

Было бы здорово, если бы был способ создать сообщение с шаблоном представления для message.body.

Есть предложения?

1 Ответ

1 голос
/ 14 августа 2010

Если вам нужен доступ к маршрутам вне контроллера, включите модуль ActionController :: UrlWriter.

...