Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Rails应用程序中实现搜索栏,该应用程序将使用诸如Yelp';s_Ruby On Rails_Ruby_Api_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 如何在Rails应用程序中实现搜索栏,该应用程序将使用诸如Yelp';s

Ruby on rails 如何在Rails应用程序中实现搜索栏,该应用程序将使用诸如Yelp';s,ruby-on-rails,ruby,api,ruby-on-rails-4,Ruby On Rails,Ruby,Api,Ruby On Rails 4,我正在制作一个使用Postgres作为数据库的Rails应用程序。我希望能够在我的一个视图中实现一个搜索栏,从多个API(可能是Yelp和Eventbrite,可能更多)获取信息。然后,它将向用户显示结果 我还没有决定如何过滤这些结果。然后,用户应该能够保存他们喜欢的结果,能够查看这些结果的详细信息,并与朋友共享 我应该使用哪些宝石?实现此搜索的最佳方法是什么?任何建议都将不胜感激。我无法谈论如何实现整个功能,因为这超出了本问题的范围。不过,我可以给你一些建议。在我接触API的经验中,这是一块巨

我正在制作一个使用Postgres作为数据库的Rails应用程序。我希望能够在我的一个视图中实现一个搜索栏,从多个API(可能是Yelp和Eventbrite,可能更多)获取信息。然后,它将向用户显示结果

我还没有决定如何过滤这些结果。然后,用户应该能够保存他们喜欢的结果,能够查看这些结果的详细信息,并与朋友共享


我应该使用哪些宝石?实现此搜索的最佳方法是什么?任何建议都将不胜感激。

我无法谈论如何实现整个功能,因为这超出了本问题的范围。不过,我可以给你一些建议。在我接触API的经验中,这是一块巨大的宝石。我会有一个用户发布到的搜索控制器,然后让该控制器使用不同的普通ruby类来联系不同的API用户HTTParty作为http客户端。

要使用像Yelp、Evenbrite或外部API这样的API,您通常必须注册才能完全访问它们。在任何情况下,您可能需要或不需要登录API

假设您的搜索栏没有自动完成功能,并且您不必登录,那么您必须创建一个处理搜索的控制器。该控制器可以调用多个模型或包装器,每个模型或包装器处理对特定提供者的API调用

如果提供商没有gem,您可以使用以下方法:

其他供应商,如Stripe,也就是说,确实提供了gem。对于这些情况,我建议您在中搜索,您可以在中找到gems(在本网站的搜索栏中键入eventbrite)。这些宝石按用途、受欢迎程度等进行评级。这是一个很好的知识来源


如果您需要登录API,您可能需要注册您的应用程序,以便通过协议(即Oauth)使用它,就像Github API。

如果您接触的API遵循restful格式,我发现这个gem对于将restful API视为活动记录关联非常有用:

用户必须登录才能使用搜索功能。你认为使用他们的API或web scrape更好吗?我会使用他们的官方API。我们有时会发现这是禁止的和危险的,你可能会在未经同意的情况下窃取信息。