在我的 Rails 3 项目中,我有一个表,我只想作为应用程序的参考:我从不希望任何人能够在应用程序中更改这些数据。这是我到目前为止所拥有的:
class Foo < ActiveRecord::Base
attr_readonly :name, :description
has_many :bars
def readonly?
return true
end
...
end
虽然这可以防止保存记录或使用update_attributes
,但我想进一步锁定它:有没有办法让我防止分配已加载的记录,例如:
f = Foo.find(1)
f.name = 'New Name'
SomeError: You cannot change properties of this object