我正在使用ruby tmdb gem从TMDB中查找电影。 我设置了API密钥,并且知道如何在rails控制台中找到电影
所以说我在@movies = TmdbMovie.find(:title => 'The Social Network')
中运行此rails console
这将返回有关上述电影社交网络的大量信息。
我需要知道的是,如何将返回的电影信息保存到我的数据库中,并可能根据返回的信息创建新电影。
所以说它运行@movies = TmdbMovie.find(:title => 'The Social Network')
并且控制台返回 View Gist on Github
如果我想从返回的信息中保存我的数据库的描述,预告片和标题
,该怎么办?答案 0 :(得分:0)
假设您设置的模型包含此数据,您可以执行以下操作:
@movies.each do |movie|
# assumes @movies is an array
# inside this loop, "movie" refers to the current TMDB movie object
YourMovie.where({
description: movie.description,
trailer: movie.trailer,
title: movie.title
}).first_or_create
end
YourMovie
只是您想要称之为电影模型的参考;在您的情况下(使用名为movies
的数据库表),它将是Movie
。
如果您尚未设置ActiveRecord
模型,则可以轻松生成一个:rails g model YourMovie description trailer movie
。
如果你真的不需要将电影存储在本地数据库中,并且只想防止不断地访问API服务,你可以使用Rails低级缓存:
Rails.cache.fetch('The Social Network', expires_in: 24.hours) do
@movies = TmdbMovie.find(:title => 'The Social Network')
end
答案 1 :(得分:0)
我不确定您是否合法地允许将tmdb数据保存到您自己的数据库中。您需要点击他们的api获取电影信息或不时缓存它。 你不应该把它保存到你的数据库.... kardeiz提供的解决方案是要走的路.......