毎月のニュースレターの期限が切れているユーザーの電子メールの動的リストを返すアクションがあります。アクションはオプションのmark_as_sent
パラメーターを取り、存在する場合、ユーザー レコードを更新して、今日メールが送信されたことを示します。
ただし、ユーザーが選択された後mark_as_sent
に更新操作が行われたとしても、が true の場合、アクションは常に空のリストを返します。
2 つの操作は同じトランザクションの一部ではないため、最初の操作が 2 番目の操作の前に有効になっているように見える理由がわかりません。
def monthly_email_list
last_month = DateTime.current-1.month
# Grab all users who havent received a monthly follow up email in a month or more:
@users = User.where("monthly_email_sent < '#{last_month}' AND on_mailing_list = 't'").select("email","id")
if params[:mark_as_sent]
count = User.where("monthly_email_sent < '#{last_month}'").select("email","id").update_all(:monthly_email_sent => DateTime.current)
end
end