Как сделать модель доступной только для чтения каждый раз, когда к ней обращаются, если для атрибута в той же модели установлено значение true?
Я искал везде, и модель только для чтения, похоже, имеет очень мало документации и даже веб-результатов.
Изменить (дополнительная информация): у меня есть два метода в моей модели (application.rb) - не в частном порядке
def lock()
self.locked = true
save(validate: false)
end
def unlock()
self.locked = false
save(validate: false)
end
Я вызываю их из моего контроллера приложений при обновлении с помощью:
if params[:application][:locked] == false
@application.unlock
return
elsif params[:application][:locked] == true
@application.lock
return
end
а в Модели (application.rb) у меня - не в привате:
def readonly?
locked == true
end
def readonly?
в свою модель (общедоступную), у меня естьlocked == true
в качестве условия, но, похоже, модель доступна только для чтения независимо от атрибута. - person notADevAccount   schedule 26.11.2018locked
(например, где оценивается значениеtrue
илиfalse
из)? Кроме того, не могли бы вы обновить свой вопрос, включив в него этот конкретный кодlocked
? просто чтобы другим пользователям SO не нужно было переходить к вашему другому вопросу. - person Jay-Ar Polidario   schedule 26.11.2018locked
атрибутом вашей модели? Если это так, то вашif locked; def readonly?; true; end; end
неверен, потому что снаружиdef readonly? ... end
,self == Model
, а неself
экземплярModel
. Я расскажу об этом подробнее после того, как вы сначала подтвердите, верны ли мои предположения/догадки. - person Jay-Ar Polidario   schedule 26.11.2018