在我的应用程序中,我必须创建一个用户来保存邮件。
当访问者通过单击按钮创建内容时会发生这种情况。其他未单击该按钮的用户可以在没有电子邮件的情况下保存邮件。
我正在考虑设置会话变量,以便应用程序的其他部分可以适应。
类似的东西:
session[:require_email] = true
在消息的控制器中。
def create
更新
更多细节。
访客创建一本书。然后他们将信息添加到书中。要保存更改,他们必须留下电子邮件,因为他们是图书的创建者并进行管理。我使用此电子邮件创建帐户,以便验证电子邮件。
然后,这位新用户邀请朋友以两种方式参与。答:他们会填写一份提供电子邮件的表格。 B:他们通过Facebook发送一条带有链接的消息。我已经收到了他们的电子邮件,因此他们可以留言并对其进行编辑或删除。
收到电子邮件链接的朋友在我收到电子邮件后立即创建帐户 点击facebook上的链接的朋友没有帐户。他们可以访问该书并留言,但不必留下他们的电子邮件。由它们决定。如果他们留下他们的电子邮件我创建了一个用户帐户,然后他们可以编辑他们的消息或删除它等。如果他们没有留下他们的电子邮件,则无法编辑或删除他们的消息。
所以我必须管理这第三组。我想如果他们点击链接我可以设置会话变量session [:guest] = true。
然后在控制器中我可以执行以下操作
除非会话[:来宾]&& PARAMS [:用户] [:邮箱] .blank? @user = User.new(params [:user]) 端
这样做可以吗?
这应该以某种方式在模型中完成吗?
答案 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
希望有所帮助!