【问题标题】:Using ActionMailer Method in link_to Statement - Rails 3.2.3在 link_to 语句中使用 ActionMailer 方法 - Rails 3.2.3
【发布时间】:2012-06-02 06:26:31
【问题描述】:

我想在单击时提供一个链接,它将向管理员发送一封电子邮件,通知他们删除记录。我已经搜索了几个小时,包括在这里,但找不到任何示例。

这是我要修改的当前代码:

link_to "Delete your User Account?", @user, method: :delete, confirm: "You sure? This will permanently delete your account.  If you want to access our site in the future you will need to create a new account again.  Are you sure you want to delete your account?" %>

我想用 ActionMailer 方法替换“method: :delete”。我在 api.rubyonrails.org 和其他地方的 Ruby 文档中查看了示例,但找不到任何内容。

我可以在不安装 gem 的情况下做到这一点吗?

为什么很难找到带有示例的文档?叹息.....

【问题讨论】:

    标签: actionmailer ruby-on-rails-3.2


    【解决方案1】:

    "method: delete" 是当您调用 url 时在标头中传递的 HTTP 方法,然后路由使用该方法来查找正确的控制器和操作。

    您需要将您的方法调用放在您的控制器中的邮件程序中,其中 User#destroy 操作是。

    应该是这样的。

    def destroy
      @user = User.find(params[:user])
      if @user.desotry
        # Tell the UserMailer to send a email after destroy
        UserMailer.delete_account_email(@user).deliver
        redirect_to(@user, :notice => 'Account was successfully closed.')
      end
    end
    

    【讨论】:

    • 非常感谢。我创建了一个布尔字段来执行此操作。我应该想到那个。我将删除该字段并使用您的建议。我相信它会起作用的。另一个问题:除了收件人模型上的字段之外,您可以将任何字段传递给 ActionMailer 吗?我想用工作字段替换我添加到数据库中的字段。也许我可以像创建密码和密码确认一样创建它们,但不会将它们物理地放在数据库中。非常感谢您的意见。
    • 您应该阅读此guides.rubyonrails.org/action_mailer_basics.html 也不要忘记将其标记为已回答。 :)
    • 谢谢,数字。请让我知道如何标记已回答的内容:) 我使用您为 ActionMailer 建议的链接来编写我的初始邮件。这真的很好。但是,我希望看到邮件发送者使用屏幕上传递的字段的示例。你知道这方面的任何例子吗,或者这甚至可能吗?所有示例都使用一个参数。
    • 这个答案的右上角有一个复选框。我真的不知道如何传递更多的答案,然后我看到人们说他们将活动邮件包装在一个全新的类中。
    • 太棒了。下次我会记得的:)我会继续研究如何传递多个参数。我在数据库上创建了新字段,以获取我在电子邮件中需要的信息。感谢您的意见。
    猜你喜欢
    • 2012-06-18
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 2012-08-06
    • 2013-07-18
    • 1970-01-01
    • 2013-01-11
    相关资源
    最近更新 更多