Rails模型:如何在创建属性后对其进行保护?

时间:2011-05-21 19:01:31

标签: ruby-on-rails ruby-on-rails-3

我只是想知道:我怎样才能使属性“写一次”? 更确切地说,我正在使用Devise,我希望用户能够使用此电子邮件进行注册,但是一旦完成,我希望锁定此电子邮件。

我读到表格很容易被绕过,所以我想确保我的模型能做到这一点。

此外,我正在使用我的一个表格:<%= f.email_field :email, :id => "email", :disabled => "disabled" %>

用户在注册后是否有修改电子邮件的风险?

感谢您的回答!

1 个答案:

答案 0 :(得分:3)

attr_readonly允许在创建时设置一个值,然后阻止在更新时修改它。

class MyModel < ActiveRecord::Base

  attr_readonly :email

end