rakefile を使用して 1 つの Web サイトから情報を取得し、データベースに保存しています。
TMDB-Gem を使用して、このコード@movie = TmdbMovie.browse(:order_by => "release", :order => "asc", :page => 1, :per_page => 2, :language => "en", :expand_results => true)
は最も古い映画 ( :order_by => "release"
) を参照し、それらをデータベースに保存しますが、このレーキを頻繁に実行するため、返される映画と保存される映画は同じになります。
すべての映画には独自性がありtmdb_id
、すべてid
がユニークです
返されたムービーの tmdb_id が一意であることを rakefile で確認し、その ID を持つムービーが既に存在する場合はスキップして次のムービーを保存するにはどうすればよいですか。
ムービー モデルで試してみましたvalidates_uniqueness_of :tmdb_id
が、rake コマンドを実行するとエラーが発生し、ムービーが保存されません。
基本的に、rakefile を使用して tmdb_id の一意性を検証するにはどうすればよいですか
これは私のレーキファイルです
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