我想让用户在这种情况下添加兴趣 - 电视节目 - 为了确保他们输入正确的电视节目,我首先要搜索imdb并让他们选择一个返回的标题。
我发现这个宝石https://github.com/ariejan/imdb几乎可以满足我的需要。如果我搜索"吸血鬼日记",它将返回它和200个额外的匹配。
我经历了宝石,我发现他在这里查询部分https://github.com/ariejan/imdb/blob/master/lib/imdb/search.rb。
def self.query(query)
open("http://akas.imdb.com/find?q=#{CGI.escape(query)};s=tt")
end
该查询基本上使用此链接http://akas.imdb.com/find?q=并返回给定输入可以找到的所有内容 - 电影,电视节目,剧集。现在我找到了一个更高级的查询,它使用type
和其他一些参数。所以我实际上只返回4个结果而不是250个。我所要做的就是用http://www.imdb.com/search/title?title=The%20Vampire%20Diaries&title_type=tv_series替换该查询。
如何覆盖该搜索方法?
答案 0 :(得分:2)
您可以使用class_eval并将其放在装饰器文件夹
中app/decorators/imdb/search_decorator.rb
class Imdb::Search.class_eval do
def self.query(query)
end
end
答案 1 :(得分:0)
您可以重新打开该类以覆盖该方法:
class Imdb::Search
def self.query(query)
# your custom logic here
end
end
请注意,您可以在您的版本中调用super(query)
以获取原始结果。