将AngularJS与Ruby on Rails一起使用的最佳方法是什么?

时间:2015-10-25 18:53:23

标签: ruby-on-rails ruby angularjs

我即将开始一个新项目,我不确定在我的前端使用AngularJS是不是一个好主意。我读到有人说这不是做项目最聪明的方式。即使我这样做,有没有办法让AngularJS与控制器交互?这个问题可能是多余的,但我真的很好奇如何在不浪费时间的情况下有效地做到这一点。

3 个答案:

答案 0 :(得分:1)

我从来没有完全做过,但我相信要走的路是构建一个Rails api,然后让一个单独的Angular项目使用api。 api还可用于构建移动应用程序。我认为Angular项目仍然需要从生产中的Node.js服务器提供,但我认为这不会有什么大不了的。

这是我以前学习如何构建Rails api:http://apionrails.icalialabs.com/book/chapter_one

您可以在现有项目中执行此操作并从中共享模型。

答案 1 :(得分:1)

有几种不同的方法可以实现这一目标。我尝试了大约5个不同的指南,我找到的最好的(我最终坚持)是https://thinkster.io/angular-rails - 本指南应该帮助你构建一个基本的CRUD应用程序,角度连接到rails。

您使用Rails作为响应Ajax请求(Get,Post,Put,Delete)的JSON RESTful API。 Angular将处理前端内容 - 将这些Ajax请求发送到rails控制器中定义的路由/方法。所以是的,当然你的AngularJS应用程序可以与你的rails控制器进行交互。

这也帮助我理解了开头的设置:您将使用AngularJS作为您的视图而不是Rails视图:

Angular-Rails Setup

我真的很喜欢使用angular with rails,因为设置JSON响应(特别是使用Active Model Serializer Gem)非常简单快速。我肯定可以推荐它,而且我没有遇到任何无法解决的问题 - 到目前为止。

只需通过我链接的指南,您就会看到此设置是否符合您的需求。

答案 2 :(得分:0)

简短的回答是,您的Rails应用程序必须为您的AngularJS应用程序提供某种公共API才能使用。 Angular(和它的兄弟一样,像React和Ember一样)在浏览器上运行客户端,它需要“某些东西”才能进行AJAX调用。那个“东西”,即你的后端,可以是Firebase,Parse,AWS Lambdas,Rails API等等。由于你已经有了Rails应用程序,添加一些RESTful API端点可能最有意义。现有模型(以及可能的控制器)从客户端/为客户端消费/生成JSON个有效负载。