0

我正在使用 ruby​​ tmdb gem 从 TMDB 中查找电影。我设置了 API 密钥,并且知道如何在 rails 控制台中查找电影

因此,假设我在其中运行它@movies = TmdbMovie.find(:title => 'The Social Network'),这将返回有关上述电影The Social Networkrails console 的一大堆信息。

我需要知道的是如何将返回的电影信息保存到我的数据库中,并可能根据返回的信息创建新电影。

所以说它运行@movies = TmdbMovie.find(:title => 'The Social Network')并且控制台在 Github 上返回这个View Gist

如果我想从返回的信息中保存描述、预告片和标题到我的数据库怎么办

4

2 回答 2

0

我不确定是否合法允许您将 tmdb 数据保存到您自己的数据库中。您需要不时访问他们的 api 来获取电影信息或缓存它。你不应该将它保存到你的数据库中...... kardeiz提供的解决方案是要走的路......

于 2013-07-25T10:28:00.027 回答
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
于 2013-07-05T16:30:11.317 回答