Ruby TMDB API将电影保存到数据库

时间:2013-07-04 22:22:00

标签: ruby-on-rails ruby command-line-interface rails-console themoviedb-api

我正在使用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

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

,该怎么办?

2 个答案:

答案 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提供的解决方案是要走的路.......