【问题标题】:Devise - Prevent email update attribute [duplicate]设计 - 防止电子邮件更新属性 [重复]
【发布时间】:2011-09-04 23:54:55
【问题描述】:

可能重复:
Rails, DEVISE - Preventing a user from changing their email address

如何阻止用户更新他们的电子邮件字段?我有一个非常通用的设计设置。我在想也许我可以对模型中的更新进行一般验证检查。但也许有更好的方法来做到这一点。

  validate :prevent_email_change, :on => :update

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我在设计方面工作不多,所以我不能确定是否有内置的方法可以做到这一点,但通常你使用 Rails 的方法来保护特定属性。最安全的方法是使用attr_accessible,但如果您预计模型的属性不会发生变化,您也可以使用 attr_protected。

    在您的情况下,您的用户模型将包括以下行:

    class User < ActiveRecord::Base
      attr_accessible :first_name, :last_name, :blah, :blah, :blah
    end
    

    请注意,此处未列出 :email,因为您不希望它可以访问。

    【讨论】:

    • 我可以那样做。但是在创建记录时我将无法使用批量分配。这将需要我为设计编写一个自定义控制器并在控制器中手动分配它,对吧?
    • 我不知道您还没有用于管理设计用户的控制器,所以是的,您需要以某种方式利用它来手动分配它。不确定这是否比您建议的模型验证更容易或更好,所以我可能会同时探索两种方式。
    猜你喜欢
    • 1970-01-01
    • 2013-01-16
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 2018-09-24
    • 1970-01-01
    相关资源
    最近更新 更多