我有一個用於發佈的複選框(:notify),並且我想在創建新帖子時發送電子郵件,僅當它被選中時才發送。但是,即使未檢查,ActionMailer也會發送電子郵件。以下是代碼片段:即使未選中複選框,ActionMailer也會發送電子郵件
if @post.save
unless params[:post][:notify].nil?
PostMailer.notify_new(@post).deliver
end
.........
..............
形式:
= bootstrap_form_for @post, remote: true do |f|
= f.text_area :body
= f.check_box :notify, label: ""
= f.submit "Send", class: "button"
如何解決它,使得僅在通知複選框被選中的郵件傳遞? 謝謝!
這與您的動作郵件無關。您的複選框邏輯位於視圖中。發送郵件的邏輯是(也應該是)在控制器中。因此,在視圖中應用過濾器以僅將那些請求發佈到被檢查的控制器。 – shivam 2014-09-03 15:18:30
params可能會返回''「'值,這不是零。試試'.present?'而不是'.nil?' – itsnikolay 2014-09-03 15:19:10
@shivam對不起?這是在控制器中的創建方法。 – user3477051 2014-09-03 15:21:36