2011-07-05 14 views
0

私のアプリケーションでは、メッセージを保存するためにユーザーを作成する必要があります。アプリケーションデザイン:条件に基づいて特定のユーザーに電子メールを送信

このケースは、訪問者がボタンをクリックするなどして何かを作成した場合に発生します。ボタンをクリックしない他のユーザーは、電子メールなしでメッセージを保存できます。

私はアプリケーションの他の部分が適応できるようにセッション変数を設定することを考えていました。

のようなもの:メッセージのためのコントローラで

session[:require_email] = true 

def create 

更新

もっと詳しく。

  1. 訪問者が本を作成します。その後、彼らは本に情報を追加します。変更を保存するには、書籍の作成者である電子メールを残して管理する必要があります。このメールを使用してアカウントを作成し、メールを確認します。

  2. この新しいユーザーは、2つの方法で参加するように友だちを招待します。 A:彼らは電子メールを供給するフォームに記入します。 B:彼らはFacebookのリンクを使ってメッセージを送る。メッセージを残して編集したり削除したりできるように、私はすでに電子メールを持っています。

  3. 電子メールリンクを受け取った友人は、自分の電子メールを受け取るとすぐに作成するので、アカウントを持っています。
    Facebookからリンクをクリックした友人にはアカウントがありません。彼らは本を訪れてメッセージを残すことができますが、メールを残す必要はありません。それまでの彼ら。彼らは自分のメールを残す場合、私はユーザーアカウントを作成し、彼らは彼らのメッセージを編集するか、削除することなどができます。

私はこの3番目のグループを管理する必要があります。彼らがリンクをクリックすると、セッション変数session [:guest] = trueを設定できると私は考えていました。

は、次にコントローラに私はセッションがない限り、以下の

を行うことができ[:ゲスト] & &のparams [:ユーザー] [:電子メール]は.blank? @user = User.new(params [:user]) end

これでいいですか?
これは何らかの形でモデルで実行する必要がありますか?

答えて

0

コントローラーにそのようなロジックを含めないでください。 MVCの基本原則の1つは、コントローラの小さなモデルです。この検証は、ユーザモデルで必要とされることを私に訴えます。

+0

ありがとうDominic私はそのアイデアに従って、私のアプリでそれを使用します。 – chell

+0

私の次の質問は、論理のやり方です。私はモデルにどのようなアクセス権があるのか​​分かりません。私はセッションオブジェクトを取得できないので、電子メールの妥当性を検査しないようにするにはどうすればよいですか? – chell

+0

より多くの文脈を持つことは、あなたに明確な答えを与えるために多くの助けになります。私には、ユーザーが何をクリックするかによってメールが必要かどうかを検証すると、メールが* REQUIRED *ではなく、*そのような場合には*提供されるべきだと思うようになります。 2つのケースの違いは何ですか?別のオブジェクトが作成されていますか? –

関連する問題