Рельсы почтовик без вида - PullRequest
15 голосов
/ 26 января 2011

Возможно ли иметь почтовую программу Rails 3 без какого-либо представления?

При работе с текстовыми письмами было бы здорово иметь возможность поместить тело прямо в почтовую программу и не использовать представление для действия только с одной строкой текста (или одним ключом I18n).

В некотором смысле, я ищу что-то вроде ActionController "render: text =>", но для ActionMailer.

Ответы [ 2 ]

22 голосов
/ 01 марта 2014

Намного проще, просто используйте опцию body :

def welcome(user)
  mail to:       user.email,
       from:     "\"John\" <admin@domain.ch>",
       subject: 'Welcome in my site',
       body:    'Welcome, ...'
end

И если вы планируете использовать html, не забудьте указать это с опцией content_type , которая по умолчанию text / plain .

content_type: "text/html"


Поэтому при использовании опции body rails пропускает шаг рендеринга шаблона.

17 голосов
/ 26 января 2011

Я нашел путь экспериментально:

mail(:to => email, :subject => 'we found the answer') do |format|
  format.text do
    render :text => '42 owns the World'
  end
end

Это также сказано в Руководстве по Rails: http://guides.rubyonrails.org/action_mailer_basics.html в разделе 2.4

...