Модель Rails: Как сделать атрибут защищенным или закрытым, который не будет виден снаружи модели? - PullRequest
1 голос
/ 29 марта 2011

В таблице есть несколько полей, которые я не хочу видеть снаружи?

Как созданный, is_first и т. Д. Я хочу установить значение этих полей, используя обратные вызовы с в модели, но не доступны для установки.

Ответы [ 2 ]

0 голосов
/ 29 марта 2011

Стандартный способ предотвращения присвоения массы для определенных полей - attr_protected и attr_accessible:

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

В вашем случае вам нужно добавить эту строку в вашу модель:

attr_protected :created_on, :is_first

Даже если у вас есть форма с этими полями, их значения будут игнорироваться при использовании в вызове new / create.

0 голосов
/ 29 марта 2011
def is_new =(is_new)
     raise 'is_new is immutable!'
end
...