Я хотел бы знать, есть ли способ сделать ключ атрибута доступным только для чтения. Это означает, что он может быть назначен только при создании объекта
ОБНОВЛЕНИЕ : я хочу иметь возможность использовать что-то вроде update_attributes и быть уверенным, что этот метод обновит только тот ключ, который может быть перезаписан. Например, если у меня есть
class User
include MongoMapper::Document
key :firstName, String, :required => true
key :lastName, String, :required => true
key :username, String, :required => true, :unique => true, :readonly => true
key :password, String, :required => true
end
(проверка только для чтения - это псевдокод, я бы хотел, чтобы что-то подобное существовало)
Тогда я ожидал бы, что следующий код вызовет ошибку или потерпит неудачу
user = User.find_by_username("foo")
user.update_attributes({:username => "bar"})
puts "You cannot change the username" unless user.valid?
Мне тоже хотелось бы что-то подобное, но это отдельная вещь
user.update_attributes({:unwantedKey => "fail!"})
puts "You cannot add keys that are not in the User scheme" unless user.valid?