TMDB.org最近对其API进行了更改,从而删除了 browse
其数据库的功能。
我的Rails应用程序曾经使用tmdb-ruby gem来浏览TMDB数据库,但是这个gem只适用于API的v2.0,现在已经不存在了。
TMDB.org推荐using this gem,因为它是从我之前使用的gem分叉的,所以它更容易一些。
我的PostgreSQL数据库已经填充了当v2.0仍然存在时以及当我可以使用 browse
功能时从TMDB导入的数据。
我现在如何使用查找功能(即:@movie = TmdbMovie.find(:title => "Iron Man", :limit => 1)
)查找随机电影,而不提供电影的标题。
This is my rake file与旧宝石合作。
我想知道如何使用 find
而不是 browse
来使其工作方式相同。
由于
答案 0 :(得分:1)
我不认为find
是你需要的东西(获得你想要的东西)(在数据库中获取最古老的电影并一直到最新的电影)。查看TMDb API文档,看起来他们现在已经discover
替换了您以前使用的browse
。
我在Irio的ruby-tmdb fork中没有看到discover
,但看起来他们拥有的大多数特定方法(如TmdbMovie.find)都调用泛型方法Tmdb.api_call。
您应该能够使用通用方法执行以下操作:
api_return = Tmdb.api_call(
"discover/movie",
{
page: 1,
sort_by: 'release_date.asc',
query: '' # Necessary because Tmdb.api_call throws a nil error if you don't specify a query param value
},
"en"
)
results = api_return["results"]
results.flatten!(1)
results.uniq!
results.delete_if &:nil?
results.map!{|m| TmdbMovie.new(m, true)} # `true` tells TmdbMovie.new to expand results
如果这样可行,你甚至可以分叉Irio的fork,实现支持所有选项的TmdbMovie.discover
方法并处理像TmdbMovie.find
这样的边缘情况,并向它们发送一个pull请求,因为它看起来像它们我还没有实现这个目标,我相信其他人也希望有这种方法:)