Rails模型:如何使属性受保护或私有在模型外不可见?

时间:2011-03-28 22:06:37

标签: ruby ruby-on-rails-3 attributes model private

桌子上有一些字段,我不想在外面看到?

与created_on,is_first等一样。我想通过在模型中使用回调来设置这些字段的值,但是某些人无法设置它。

2 个答案:

答案 0 :(得分:0)

def is_new =(is_new)
     raise 'is_new is immutable!'
end

答案 1 :(得分:-1)

阻止某些字段进行批量分配的标准方法是attr_protectedattr_accessible

http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html

在您的情况下,您必须在模型中添加此行:

attr_protected :created_on, :is_first

即使您有一个包含这些字段的表单,在新/创建调用中使用它们时也会忽略它们的值。