Ruby on rails 如何触发电子邮件?轨道

Ruby on rails 如何触发电子邮件?轨道,ruby-on-rails,ruby,actionmailer,Ruby On Rails,Ruby,Actionmailer,我想在@post视图中触发一个邮件“操作” class UserMailer < ActionMailer::Base default from: "example@gmail.com" def newsletter(post) @greeting = "" @users = User.all @users.each do |user| mail to: user.email, subject: post.title end end

我想在@post视图中触发一个邮件“操作”

class UserMailer < ActionMailer::Base
  default from: "example@gmail.com"

  def newsletter(post)
    @greeting = ""
    @users = User.all
    @users.each do |user|
      mail to: user.email, subject: post.title
    end
  end
end

如果我按下此按钮,当错误明显存在时,会弹出错误“No route matches posts/6”。

您必须编写一个操作,该操作将调用UserMailer.newsletter(@post.deliver)

添加必要的路由,并将按钮链接到该操作

在routes.rb中

resources :posts do
  member do
    get :send_newsletter
  end
end
鉴于

link_to 'Deliver', send_newsletter_post_path(@post)

此外,您还可以将get方法更改为发布并提交一份发送新闻稿的表单

Wow,这绝对像Rails的方式。谢谢
resources :posts do
  member do
    get :send_newsletter
  end
end
link_to 'Deliver', send_newsletter_post_path(@post)