Привет, у меня есть приложение для рельсов, которое содержит модель канала. Его атрибуты следующие:
# Table name: channels
#
# id :integer not null, primary key
# created_at :datetime
# updated_at :datetime
# channel_name :string(255)
# classification :string(255) default("0")
# ownership :string(255) default("0")
Задача rake в моем приложении прочитала файл csv и заполнила информацию в базе данных. Это снимок кода, который создает модель
...previous code........
channelName = nil
classif = nil
owner = nil
channelName = row[0].force_encoding('UTF-8')
classif = row[1].force_encoding('UTF-8')
owner = row[2].force_encoding('UTF-8')
if (channelName.nil?)
puts "Channel name for row #{i} was nil"
next
else
puts "Creating channel hash with information:"
puts "channel_name= #{channelName}"
puts "classification=#{classif}"
puts "ownership= #{owner}"
ch = Channel.where(:channel_name =>"#{channelName}").first_or_create do |c|
c.ownership = "#{owner}"
c.classification = "#{classif}"
Поскольку задача смогла прочитать CSV-файл и заполнить базу данных, часть «создать» метода «first_or_create» работает. Однако, когда я изменяю некоторые вещи в файле csv и повторяю задачу rake, она должна обновить базу данных с измененным содержимым. Он не делает этого. Мне интересно, это как-то связано с синтаксисом моего метода? часть блока неправильная?