Я пытаюсь сохранить логическое значение в модели с помощью затравки онпроверка не выполняется для ActiveRecord в определении случайной булевой атрибут
20151130014042_create_duty_statuses.rb
class CreateDutyStatuses < ActiveRecord::Migration
def change
create_table :duty_statuses, :id => false do |t|
t.string :id, limit: 36, primary: true, null: false
t.string :remark, :limit => 256
t.boolean :active, :required => true, default: false
t.string :employee_id,limit: 36, :required => true
t.timestamps null: false
end
end
end
duty_status.rb
class DutyStatus < ActiveRecord::Base
include UUIDHelper
belongs_to :employee
validates_length_of :remark , maximum: 256, message: "description must be less than 256 characters"
validates_presence_of :active
end
seeds.rb
dutyStatus = DutyStatus.new(remark: Faker::Lorem.sentence, employee: myEmployee)
dutyStatus.active = [false,true].sample
dutyStatus.created_at = rand(720..72000).hours.ago
dutyStatus.save
Если я использую
dutyStatus.active = [false,true].sample
Это ничего в базе данных не записывается. ни 0,1, ни «истина», «ложь»; если я не делаю неявное истинное значение, оно сохраняет значение 1; но мне нужны случайные логические значения. Вот ошибка:
ActiveRecord::RecordInvalid: Validation failed: Active can't be blank
Как сохранить случайные значения в модели?
Нету все еще получаю ActiveRecord :: RecordInvalid: Не удалось выполнить проверку: Активный не может быть пустым – james
@James, Хорошо, я думаю, вы должны подтвердить включение активных (чувствует как будто у меня была аналогичная проблема с булевым полем некоторое время назад). 'validates: active, include: {in: [true, false]}'. Попробуйте –
yep it works! благодаря – james