Сделайте свой помощник доступным для Mailer и View в Rails 3.1 - PullRequest
16 голосов
/ 22 июля 2011

это лучший способ сделать помощника доступным как для Mailer, так и для вида в Rails 3.1?

class EventMailer < ActionMailer::Base
  include MailerHelper
  helper :mailer

Я пробовал

helper :mailer

сам по себе, но это не такя не могу использовать помощников в классе EventMailer.

Я пытался

add_template_helper(MailerHelper)

, но у меня возникла та же проблема.

1 Ответ

33 голосов
/ 30 июля 2011

Помощники рельсов должны быть view помощники.

Вы заметите, что следующий код:

class MyController < ApplicationController
    helper :my
end

сделает методы в MyHelperдоступно для просмотра, но не для действий вашего контроллера.include MyHelper сделает вспомогательные методы доступными в контроллере.

Суммировано:

helper :my и вы можете использовать помощников в своих представлениях

include MyHelper и выможете использовать помощников в вашем контроллере

Я объяснил немного больше, но вы уже ответили на свой вопрос:

class EventMailer < ActionMailer::Base
    include MailerHelper
    helper :mailer

    # rest of the code goes here ...
end

сделает то, что вы хотите, и позволит вам использовать своего помощника в обоих вашихпочта и ваши взгляды.

Надеюсь, это поможет.

...