0

new.html.erb在我的 Rails 3.2 项目中,我有一个表单可以在其中创建一个新帖子app/views/posts/

<%= form_for(@post) do |post_form| %>
  ...
  <div class="field">
    <%= post_form.label :email %><br />
    <%= post_form.text_field :email %>
  </div>
  <div class="field">
    <%= post_form.label :title %><br />
    <%= post_form.text_field :title %>
  </div>
  <div class="field">
    <%= post_form.label :content %><br />
    <%= post_form.text_field :content %>
  </div>
  <div class="actions">
    <%= post_form.submit %>
  </div>
<% end %>

然后create函数在posts_controller.rb

def create
  @post = Post.new(params[:post])  
  if @post.save
    format.html { redirect_to @post }
  else
    format.html { render action: "new" }
  end
end

当用户提交帖子时,我想向email“您已提交带有标题title和内容的帖子”的电子邮件通知content。我怎样才能做到这一点?

4

3 回答 3

0

您将设置一个邮件程序,为它提供一个模板,然后调用邮件程序操作,或者在创建操作本身中,或者作为 Post 模型的回调。

这是关于在 Rails 3 中使用 ActionMailer 的 Railscast。它应该几乎涵盖了这些步骤。

于 2012-10-15T19:10:03.250 回答
0

您将创建一个新的邮件程序类,并从您希望发送电子邮件的控制器中调用该类。你可以在这里了解 ActionMailer http://guides.rubyonrails.org/action_mailer_basics.html

于 2012-10-15T19:10:20.363 回答
0

您必须在 app/mailers/ 文件夹中创建一个邮件设置初始化程序和一个 user_post_mailer.rb

然后你可以打电话

UserMailer.post_confirmation(@user).deliver

来自你的控制器

Railscast 邮件程序集

于 2012-10-15T19:10:43.717 回答