В таблице есть несколько полей, которые я не хочу видеть снаружи?
Как созданный, is_first и т. Д. Я хочу установить значение этих полей, используя обратные вызовы с в модели, но не доступны для установки.
Стандартный способ предотвращения присвоения массы для определенных полей - attr_protected и attr_accessible:
attr_protected
attr_accessible
http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html
В вашем случае вам нужно добавить эту строку в вашу модель:
attr_protected :created_on, :is_first
Даже если у вас есть форма с этими полями, их значения будут игнорироваться при использовании в вызове new / create.
def is_new =(is_new) raise 'is_new is immutable!' end