У меня есть следующая модель:
class Question < ActiveRecord::Base
belongs_to :user, :readonly => true
end
Я ожидаю, что атрибут: readonly => true предотвратит изменение пользователя, т.е.
# assume we've set up user_1, user_2 and question
# and that question.user == user_1
question.user = user_2
question.save
question.reload
question.user == user_2 # true - why?
Почему это правда - я ожидал, что: readonly => true предотвратит изменение этого атрибута после первоначального создания? Если это не так, что делает опция: readonly?
EDIT
Использование attr_readonly
даст неизменяемость (неизменность?), Которую я искал.
class Question < ActiveRecord::Base
belongs_to :user
attr_readonly :user_id
end
Единственная проблема с ним заключается в том, что он никогда не вызывает исключение при попытке изменить атрибут, поэтому легко выявлять ошибки из-за тихих сбоев.