我使用Rake文件從一個網站獲取信息,並保存到我的數據庫。Ruby on Rails的 - Rake文件validates_uniqueness_of
使用TMDB寶石,這個代碼@movie = TmdbMovie.browse(:order_by => "release", :order => "asc", :page => 1, :per_page => 2, :language => "en", :expand_results => true)
瀏覽歷史最悠久的電影(:order_by => "release"
),並將其保存到我的數據庫,但我會相當頻繁地運行此耙,返回和保存的電影將是相同的。
每部影片都有一個tmdb_id
每id
是唯一
我怎樣才能讓Rake文件檢查,返回影片的tmdb_id是唯一的,如果已經有一個電影與ID,跳過,節省下一部電影。
我想在我的電影模式validates_uniqueness_of :tmdb_id
但在運行rake命令時,它給出了一個錯誤,它不保存電影。
基本上,我怎樣才能通過Rake文件,驗證了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