Salut J'ai une application rails qui contient un modèle de canal. Ses attributs sont les suivants:ruby first_or_create méthode ne pas mettre à jour le modèle et la base de données
# 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")
Une tâche de râteau dans mon application a lu un fichier csv et des informations dans la base de données de population. Voici un aperçu du code qui crée le modèle
...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}"
Depuis la tâche a été en mesure de lire le fichier csv et remplir la base de données, la méthode « créer » une partie de l ' « first_or_create » fonctionne. Cependant, lorsque je change certaines choses dans le fichier csv et que je refais la tâche rake, il faut mettre à jour la base de données avec le contenu modifié. Ça ne fait pas ça. Je me demande si c'est quelque chose à voir avec la syntaxe de ma méthode? la partie du bloc est-elle fausse?
@dax S'il vous plaît arrêter l'édition poste de Asker, en particulier si vous supprimez juste le « merci pour votre aide » pièces ... – MrYoshiji
Salut @MrYoshiji, je partais de [ce] (http: // meta. stackexchange.com/questions/122535/what-is-the-etiquette-for-adding-a-signature-to-a-question), que quelqu'un a cité en réponse à une modification de ma propre question. – dax