Лучший способ сделать это - создать пользовательский установщик для поля в базе данных, что-то вроде этого:
class Person < ActiveRecord::Base
def active=(value)
value = value == 'on' ? true : false
super(value)
end
end
Таким образом, вам не нужно беспокоиться об этом в контроллере иэто модель, которая знает, какой ценностью она должна быть.При переходе к просмотру рельсов автоматически устанавливается флажок из логического поля.На всякий случай, если это не сработало, вы также можете определить свой собственный получатель.
Это может быть использовано, например, в сочетании со средством доступа к магазину примерно так:
class Person < ActiveRecord::Base
validates :active, inclusion: {in: [true, false]}
validates :remember_password, inclusion: {in: [true, false]}
store :settings,
accessors: [:active, :remember_password],
coder: JSON
def active=(value)
value = value == 'on' ? true : false
super(value)
end
def remember_password=(value)
value = value == 'on' ? true : false
super(value)
end
end
Обратите внимание, чтополе настройки в базе данных должно быть текстовым, чтобы в него можно было добавлять больше информации.