J'utilise un rakefile pour aller chercher des informations d'un site Web et l'enregistrer dans ma base de données.Ruby on Rails - Rakefile validates_uniqueness_of
Utilisation du films TMDB-Gem, ce code @movie = TmdbMovie.browse(:order_by => "release", :order => "asc", :page => 1, :per_page => 2, :language => "en", :expand_results => true)
les plus anciens (navigue :order_by => "release"
) et les enregistre dans ma base de données, mais comme je vais courir ce râteau assez souvent, les films sont retournés et sauvés seront les mêmes.
Chaque film a une tmdb_id
et chaque id
est unique
Comment puis-je faire la vérification de rakefile que la tmdb_id de film retourné est unique, et s'il y a déjà un film avec cet identifiant, sauter et enregistrer le prochain film .
Je l'ai essayé dans mes films modèle validates_uniqueness_of :tmdb_id
mais il donne une erreur lors de l'exécution de la commande rake et il ne sauve pas les films.
En gros, comment puis-je, à travers le rakefile, valider l'unicité de la tmdb_id
Ceci est mon fichier râteau
namespace :db do
task :pull_tmdb_data => :environment do
Tmdb.api_key = "API KEY"
Tmdb.default_language = "en"
@movie = TmdbMovie.browse(:order_by => "release", :order => "asc", :page => 1, :per_page => 2, :language => "en", :expand_results => true)
@movie.each do |movie|
Movie.create(title: movie.name, description: movie.overview, release_date: movie.released, tmdb_id: movie.id)
end
end
end
Ajout mon fichier de coupe à la question. En utilisant 'validates_uniqueness_of: tmdb_id' provoque la commande de coupe pour ne pas enregistrer les films retournés, alors que si je retire' validates_uniqueness_of: tmdb_id' il sauve – PMP
'create' ne devrait pas soulever une exception, pouvez-vous s'il vous plaît nous montrer l'erreur que vous obtenez? –
Il ne retourne pas une erreur. Qu'est-ce qui se passe est que, si je n'ai pas les validates ... dans le modèle, puis pousser à heroku et exécuter la commande rake, il enregistre les films retournés à ma base de données, comme il se doit. Mais, si j'ajouter validates_uni ... à mon modèle, puis pousser à Heroku et exécutez la commande de coupe, il ne marche pas enregistrer les films retournés dans ma base de données – PMP