Il existe une table questions
et un fichier de données questions.yml
. Supposons qu'il n'y a pas de modèle 'Question'. 'Questions.yml' a quelques vidages de recodes de la tableComment charger les données d'un fichier .yml à la base de données?
---
questions_001:
title: ttt1
content: ccc1
questions_002:
title: ttt2
content: ccc2
Je veux charger les données du fichier yml, les insérer dans la base de données. Mais je ne peux pas utiliser rake db:fixtures:load
, car il va traiter le contenu en tant que modèle 'erb', ce qui ne veut pas je veux
Donc je veux écrire une autre tâche de rake, pour charger les données manuellement.
Je peux lire les enregistrements par:
File.open("#{RAILS_ROOT}/db/fixtures/#{table_name}.yml", 'r') do |file|
YAML::load(file).each do |record|
# how to insert the record??
end
end
Mais je ne sais pas comment les insérer.
Edit:
J'ai essayé:
Class.new(ActiveRecord::Base).create(record)
et
class Dummy < ActiveRecord::Base {}
Dummy.create(rcord)
Mais rien inséré dans la base de données
@Jens Fahnenbruck, merci, mais je suppose qu'il n'y a pas de modèle 'Question', juste la table et le fichier yml. – Freewind
J'ai cette limitation, car il y a des tableaux n'ont pas de modèles correspondants, tels que 'questions_tags' – Freewind
J'ai mis à jour mon anser – jigfox