【问题标题】:Rails: Is it possible to Trigger a mailer method with a link_to or button_to method?Rails:是否可以使用 link_to 或 button_to 方法触发邮件程序方法?
【发布时间】:2014-06-05 21:39:03
【问题描述】:

我正在尝试创建一个管理员工具,管理员可以在其中使用按钮发送已经存在的电子邮件。

我有一个class FamilyMailer < ActionMailer::Base 用这个方法birthdaymailer

有没有办法让我从视图中触发这个?

我在 StackOverFlow 上看到了很多答案,但它并没有真正起作用。

我遇到的最接近的结论是邮件程序在视图中以FamilyMailer.birthdaymailer 的这种方式被触发并返回到主页。

我想知道是否有更好的方法。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 actionmailer link-to button-to


    【解决方案1】:

    当然!

    假设您有一个名为 UserMailer 的邮件程序。

    设置您的控制器操作:

    # my_controller.rb
    
    def send_mail
      @parameters = Model.get_parameters
      UserMailer.name_of_action(@parameters).deliver
    end
    

    设置你的路线:

    get send_mail, to: 'my_controller#send_mail', as: :send_mail
    

    那就做你的链接吧!

    link_to 'Send mail', send_mail_path, class: "big-button"
    

    瞧。

    【讨论】:

    • 如果您希望它是半静默的,您可以(按照上述)使用 AJAX 调用端点或在方法的末尾添加重定向,让您回到开始的页面。
    • 我最终做了类似的事情:)!但是我仍然会选择它作为答案,因为我仍然不知道这是可能的!谢谢@Steel
    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    相关资源
    最近更新 更多