应用程序设计:根据条件向特定用户发送电子邮件

时间:2011-07-05 11:31:49

标签: ruby-on-rails-3

在我的应用程序中,我必须创建一个用户来保存邮件。

当访问者通过单击按钮创建内容时会发生这种情况。其他未单击该按钮的用户可以在没有电子邮件的情况下保存邮件。

我正在考虑设置会话变量,以便应用程序的其他部分可以适应。

类似的东西:

session[:require_email] = true

在消息的控制器中。

def create

更新

更多细节。

  1. 访客创建一本书。然后他们将信息添加到书中。要保存更改,他们必须留下电子邮件,因为他们是图书的创建者并进行管理。我使用此电子邮件创建帐户,以便验证电子邮件。

  2. 然后,这位新用户邀请朋友以两种方式参与。答:他们会填写一份提供电子邮件的表格。 B:他们通过Facebook发送一条带有链接的消息。我已经收到了他们的电子邮件,因此他们可以留言并对其进行编辑或删除。

  3. 收到电子邮件链接的朋友在我收到电子邮件后立即创建帐户 点击facebook上的链接的朋友没有帐户。他们可以访问该书并留言,但不必留下他们的电子邮件。由它们决定。如果他们留下他们的电子邮件我创建了一个用户帐户,然后他们可以编辑他们的消息或删除它等。如果他们没有留下他们的电子邮件,则无法编辑或删除他们的消息。

  4. 所以我必须管理这第三组。我想如果他们点击链接我可以设置会话变量session [:guest] = true。

    然后在控制器中我可以执行以下操作

    除非会话[:来宾]&& PARAMS [:用户] [:邮箱] .blank? @user = User.new(params [:user]) 端

    这样做可以吗?
    这应该以某种方式在模型中完成吗?

1 个答案:

答案 0 :(得分:0)

你永远不应该在控制器中包含这样的逻辑。请记住,MVC的基本原理之一是微控制器,胖模型。在我看来,这个验证在用户模型中是必需的。

validates_presence_of :email, :if => :should_validate_email?

def should_validate_email?
    # your logic that says if the email should be validated.
end

希望有所帮助!