-2

ユーザーが挿入した日付に基づいてユーザーにメールを送信する条件を設定するにはどうすればよいですか?gemを使用せずにifステートメントを使用します。

ユーザーは名前、メールアドレス、日付を挿入します。次に、挿入した日付に基づいて、システムは、今日=挿入した日付+ 7日であるかどうかを確認し、電子メールを送信しますか?これはどこに入力すればいいですか?それはusermailer、または「Dop」コントローラーにありますか?

ユーザーメーラー:

 class UserMailer < ActionMailer::Base
  default from: "bla bla bla"
   def welcome_email(dop)
    @dop = dop
    @url  = "blah blah"
    mail(:to => dop.mail, :subject => "Welcome to My Awesome Site")
  end
 end

「Dop」は妊娠日を指します

4

2 に答える 2

1

私の見解では、UserMailer は電子メールの実際の作成と発送だけに関心を持つべきです。UserMailer が呼び出された場合は、電子メールを発送することをすでに決定しているはずです。

したがって、あなたの場合、メーラーに電子メールを送信するように指示する作成アクションがコントローラーにあると仮定します。ここでは、このアクションを if ステートメントにカプセル化するだけです。

date = Date.civil(params[:date][:year].to_i, params[:date][:month].to_i, params[:date][:day].to_i)

if date + 7.days == Date.today 
  UserMailer.welcome_email(@dop).deliver
end

これは、フォームで次のようなものを使用することを前提としています。

<%= select_date Date.today, prefix: :date %>
于 2012-06-27T12:04:31.830 に答える
0

あなたのメーラーで:

class UserMailer < ActionMailer::Base
  default :from => "blah@blah.com"

  def welcome_email(dop)
    @dop = dop
    @date = dop.date + 7.days
    @url = "http://www.myurl.com"
    mail(:to => dop.mail, :subject => "Welcome to My Awesome Site")
  end
end

次に、メーラー ビューに @date を挿入するだけです。

<h1>Welcome to example.com, <%= @user.name %></h1>
<p>
  Something about pregnancy on <%= @date %>!
</p>
<p>
  Check out our <%= link_to "awesome url", @url %>!
</p>
于 2012-06-27T12:03:53.383 に答える