【发布时间】:2016-03-04 05:03:35
【问题描述】:
我有一个电子邮件模型供用户注册,以便在添加或更新文章时接收电子邮件通知。电子邮件正常工作,但我收到一条错误消息,其中包含我在 email.rb 文件中生成的取消订阅方法。我在 2012 年发布的另一个 stackoverflow 问题中找到了取消订阅解决方案,但我没有看到如何正确使用该解决方案。
电子邮件模型:
class Email < ActiveRecord::Base
validates :email, uniqueness: true
validates :email, presence: true
def unsubscribe
Email.find(params[:id]).update_attributes(permissions: false)
end
end
文章模型:
class Article < ActiveRecord::Base
...
has_many :emails
after_create :send_new_notifications!
after_update :send_update_notifications!
def send_update_notifications!
email = Email.where(permissions: true)
email.each do |email|
UpdatedArticleMailer.updated_article(email, self).deliver_later
end
end
def send_new_notifications!
email = Email.where(permissions: true)
email.each do |email|
ArticleNotificationMailer.new_article(email, self).deliver_later
end
end
end
更新文章电子邮件中的退订链接:
<%= link_to "Unsubscribe", email_url(@email.unsubscribe) %>
错误信息:
undefined local variable or method `params' for #<Email:0x007ff5c2955e88>
def unsubscribe
Email.find(params[:id]).update_attributes(permissions: false)
end
end
【问题讨论】:
标签: ruby-on-rails email actionmailer