Ruby on rails Rails模型:如何使属性一旦被保护';是什么创造的?

Ruby on rails Rails模型:如何使属性一旦被保护';是什么创造的?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我只是想知道:我如何才能使属性“写一次”? 更准确地说,我正在使用Desive,我希望用户能够注册此电子邮件,但一旦注册完成,我希望锁定此电子邮件 我读到表单很容易被绕过,所以我想确保我的模型做到这一点 另外,我在我的一个表单中使用:“email”,:disabled=>“disabled”%> 用户在注册后修改其电子邮件是否存在任何风险 谢谢你的回答 attr\u readonly允许在创建时设置值,然后防止在更新时修改 class MyModel < ActiveRecord::Bas

我只是想知道:我如何才能使属性“写一次”? 更准确地说,我正在使用Desive,我希望用户能够注册此电子邮件,但一旦注册完成,我希望锁定此电子邮件

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

另外,我在我的一个表单中使用:
“email”,:disabled=>“disabled”%>

用户在注册后修改其电子邮件是否存在任何风险


谢谢你的回答

attr\u readonly
允许在创建时设置值,然后防止在更新时修改

class MyModel < ActiveRecord::Base

  attr_readonly :email

end
classmymodel
如果我这样做,用户将无法创建他的帐户。我需要能够写一次,然后把它变成只读。类似于
在创建后更改其属性…我已经阅读了您的更新。似乎Deave不喜欢我在注册页面上将电子邮件更改为
attr\u readonly
,我得到错误“电子邮件不能为空”。无论如何,我的问题似乎是另一个问题。感谢您的帮助,我会先搜索一下,然后再问另一个关于我的Desive bug的问题。您的意思是说,即使您输入了电子邮件地址,
电子邮件也不能为空?或者你的意思是你不希望在注册时需要电子邮件地址?我的意思是,即使我输入了电子邮件地址,我也会收到此消息:(