我有一個電子郵件模型,供用戶在添加或更新文章時註冊以接收電子郵件通知。該電子郵件正常工作,但我收到一條錯誤消息,其中包含我在我的email.rb文件中生成的取消訂閱方法。我發現在2012年發佈的另一個stackoverflow問題中的取消訂閱解決方案,但我沒有看到如何正確工作解決方案。Rails取消訂閱與ActionMailer的鏈接
電子郵件型號:
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
關於:會員,這是我聲明的東西,例如電子郵件或這是從軌道上的東西? – jgrant
我認爲這工作,但我看到一個模板錯誤。我假設這是因爲我沒有在我的退訂方法中設置句柄錯誤,重定向成功等? – jgrant
對,您需要有一個名爲unsubscribe.erb的視圖,或者在成功時重定向它。 – GoGoCarl