Как вставить логические значения в приложение rails - PullRequest
0 голосов
/ 01 марта 2019

Как я могу заполнить логический столбец rails app, учитывая данные вида "t", "f", "f", "t" и т. Д.

Я подозреваю, что если я заполнил эти строки в логический столбец, я получу ошибку

Для контекста, формат "t", "f", "f", "t" - это то, как булевы данные появляются при извлечении в виде CSV из базы данных postgresql

. Для дальнейшего контекста текущий начальный файл выглядит так

csv_text = File.read(Rails.root.join('lib', 'seeds', 'bands.csv'))
csv = CSV.parse(csv_text.scrub, headers: true)
csv.each do |row|
  t = Band.new
  t.band_name = row['band_name']
  t.category_1 = row['category_1']
  t.category_2 = row['category_2']
  t.category_3 = row['category_3']
  t.category_4 = row['category_4']
  t.link = row['link']
  t.time = Time.zone.parse(row['time'])
  t.image = row['image']
  t.available = row['available'] # This is the boolean column
  t.save
  puts "#{t.band} saved"
end

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете проверить, получена ли строка как-то так

t.available = row['available'] == 't'

Это назначит t.available с логическим значением true else false

Если вы хотите проверить обазначения и сохраните его nil, если значение не указано, вы можете использовать

t.available = if row['available'] == 't' 
                true
              elsif row['available'] == 'f'
                false
              end 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...