Rails - Как включить помощник mail_to внутри контроллера - PullRequest
2 голосов
/ 01 марта 2011

в моем контроллере мне нужно отформатировать объект json, поэтому мне нужно включить несколько помощников.

Пока у меня в контроллере есть следующее:

  include ApplicationHelper
  include ActionView::Helpers::TextHelper
  include ActionView::Helpers::TagHelper

Это прекрасно работает для simple_format, проблема в том, что когда comment.content имеет адрес электронной почты, rails пытается создать ссылку mailto, которая разрывается, показывая следующую ошибку в журналах: «NoMethodError (неопределенный метод` mail_to 'для .. .. "

Есть идеи, как его добавить? Я попытался добавить include ActionView :: Helpers :: UrlHelper, но это не сработало.

Спасибо

Ответы [ 2 ]

10 голосов
/ 02 марта 2011

Вы можете использовать view_context в вашем контроллере при выполнении задач «просмотра», таких как генерация ссылок.Хорошо, что вам не нужно включать помощников вида в вашем контроллере.

например, в вашем контроллере вы можете создать переменную, которая будет html-ссылкой с link_to.

link = view_context.link_to("link", your_awesome_path(@awesome))

Я не проверял это, но, надеюсь, вы должны сделать это в вашем контроллере:

email_link = view_context.mail_to(@user.email)

RyanB использует view_context в paper_trail railscast: 255-undo-with-paper-trail

Не уверен, решит ли это вашу проблему, потому что не уверен, что вы делаете с помощниками JSON и т. Д., Но это может помочь.

1 голос
/ 14 апреля 2012

Я решил это следующим

class CrazyPresenter
  include Rails.application.routes.url_helpers
  include ActionView::Helpers::TextHelper
  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::UrlHelper

  def controller
    nil
  end

end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...