Ruby on rails 在Heroku上将我的Rails Web app数据库连接到我的Rails API

Ruby on rails 在Heroku上将我的Rails Web app数据库连接到我的Rails API,ruby-on-rails,json,api,heroku,Ruby On Rails,Json,Api,Heroku,我觉得我的问题通过其他一些问题得到了部分回答,但我无法将我的案例中的所有问题都拼凑起来 基本上,我想建立一个相当简单的网络应用程序,但也能够相当容易地建立一个移动应用程序。根据我的研究,最佳实践是构建一个RESTful JSON API,然后将该API用于我的web应用程序和移动应用程序 我已经为我的JSON API开发了身份验证(使用:),我已经在Heroku上安装了它。现在,对于我的web应用程序,我正在使用该API,并且我正在将JSON恢复到良好状态。但是,我不太确定如何处理数据库。我的第

我觉得我的问题通过其他一些问题得到了部分回答,但我无法将我的案例中的所有问题都拼凑起来

基本上,我想建立一个相当简单的网络应用程序,但也能够相当容易地建立一个移动应用程序。根据我的研究,最佳实践是构建一个RESTful JSON API,然后将该API用于我的web应用程序和移动应用程序

我已经为我的JSON API开发了身份验证(使用:),我已经在Heroku上安装了它。现在,对于我的web应用程序,我正在使用该API,并且我正在将JSON恢复到良好状态。但是,我不太确定如何处理数据库。我的第一个想法是,也许我需要通过API自己的API调用访问API的数据库,但这似乎非常复杂(一想到必须为
User.find\u by
创建函数,我就感到害怕)。另一个想法是让我的web应用程序使用API应用程序的数据库。但是,如果应用程序在Heroku上,我找不到任何关于如何做到这一点的信息


所以基本上,我想知道最好的方法是什么。当然,有一个标准,每个大的或小的web应用程序都使用API。我真的很惊讶,现在流行的东西很难找到好的答案。还是我完全错了?如有任何提示,我们将不胜感激。

用Heroku的话说,数据库是附加组件

使用heroku插件获取应用程序的插件列表

$ heroku addons -a appname

Add-on                                    Plan       Price
────────────────────────────────────────  ─────────  ─────
heroku-postgresql (relaxing-purely-8366)  hobby-dev  free 
 └─ as DATABASE    
首先,您可能要删除连接到前端应用程序的数据库:

heroku addons:destroy fat-samurai-1234
然后查找附加到API应用程序的数据库加载项的名称,并将该加载项附加到前端应用程序

heroku addons:attach shining-sushi-1234 -a sushi.

至于哪种方法是合法的,这是一个讨论的问题。如今,许多应用程序使用单页架构,整个应用程序都是在前端用javascript创建的。所以你的应用程序只会使用你的RESTAPI。流行的框架有Ember.js、Bootstrap和Angular


另一种方法是创建一个经典的服务器端应用程序-虽然可以创建一个使用REST api的应用程序,但这会带来很大的开销,因此直接连接到数据库会更高效。

我不确定,但在第一次推送到heroku之前,将数据库连接到前端应用程序可能会有问题阻止heroku为应用程序生成数据库-这是一件好事。酷,我不知道你可以在heroku中这样做。我试试看。然而,这就提出了发展如何运作的问题。前端的开发数据库是否必须使用api的开发数据库?这是可能的,在本地运行我的api服务器,以及我的前端。或者我可以将我的开发环境连接到heroku吗?这自然是一个登台版本。这可能意味着另一个问题,但如果你知道,那就太好了。取决于-我通常在开发数据库中只有足够的样本数据,以便能够使用CSS/HTML进行合理的工作。为dev使用远程数据库可能是可行的,但听起来像PITA。如果您需要开发真实数据,请使用PG备份并将数据镜像到您的本地数据库。登台是一个完全不同的问题-但您可能应该使用另一个数据库并对两个登台应用程序重复相同的步骤。谢谢,一切似乎都正常。然而,您让我思考是否应该为我的前端设置一个数据库(因为它实际上只是一个前端)。我大多认为我是这样做的,因为我只从身份验证中收到了一封电子邮件和令牌,我只是想使用
用户。通过电子邮件查找\u
来获取登录用户,但在我构建api时,我每次都必须复制新模型和新模式。看起来很烦人而且容易出错。如果我走的是有角度的路线,我无论如何都无法访问数据库。那么,我是否应该为我的前端设计一个db?