rakefile을 사용하여 한 웹 사이트에서 정보를 가져와 내 데이터베이스에 저장하고 있습니다.Ruby on Rails - Rakefile validates_uniqueness_of
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
는 고유
.
내 영화 모델 validates_uniqueness_of :tmdb_id
에서 시도했지만 rake 명령을 실행할 때 오류가 발생하고 동영상을 저장하지 않습니다. 내가의 rakefile 통해 tmdb_id
의 고유성을이 내 레이크 파일
당신은 바로Movie
모델에서
validates_uniqueness_of :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
질문에 내 레이크 파일을 추가했습니다. 'validates_uniqueness_of : tmdb_id'를 사용하면 rake 명령이 반환 된 무비를 저장하지 못하게됩니다. 반면'validates_uniqueness_of : tmdb_id'를 제거하면 저장됩니다. – PMP
'create'가 예외를 발생시키지 않아야합니다. 오류를 표시 할 수 있습니까? –
오류를 반환하지 않습니다. 무슨 일이 일어날 지, 모델에 유효성 검사를하지 않으면 ... heroku로 밀고 rake 명령을 실행하면 반환 된 동영상이 내 데이터베이스에 저장됩니다. 하지만 validates_uni를 내 모델에 추가 한 다음 heroku로 밀고 rake 명령을 실행하면 리턴 된 동영상을 내 데이터베이스에 저장하지 마십시오 – PMP