У меня есть флажок (: уведомлять) для Почты, и я хочу отправлять электронные письма при создании нового сообщения, только если он установлен. Однако 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
params могут возвращать значение '' '', которое не равно нулю. попробуйте '.present?' вместо '.nil?' – itsnikolay
@shivam Извините? Это IS в контроллере в методе создания. – user3477051