如何将Ember应用程序连接到Rails API?

时间:2016-07-17 03:33:05

标签: ruby-on-rails ruby ember.js ember-cli development-environment

目前在了解如何在我的本地开发环境中将Ember应用程序连接到Rails API时遇到一些麻烦。我对这种设置非常不熟悉,而不是只运行纯粹的Rails应用程序。

所以当我运行这两个独立的应用程序时,它看起来像是:

Ember app running on `localhost:4200`
Rails API running on `localhost:3000`

两个应用程序都在同一个目录中

Parent Directory
|
|___ API
|
|___ Ember App

当我访问两个localhost URL时,两个应用程序都在运行。 Rails API看起来很好,但是Ember应用程序显示了默认的“有些错误”页面,下面是我在控制台中收到的错误:

enter image description here

我希望有人可以解释我的设置可能出现的问题,这会导致此错误。

2 个答案:

答案 0 :(得分:2)

由于您尚未在此处发布任何文件,因此应如何设置

在Ember内部定义具有命名空间属性的应用程序适配器:

Implicitly declaring library function 'strcmp' with type 'int (const *char, const *char)'

在rails config / routes.rb里面你应该有这样的东西:

export default ActiveModelAdapter.extend({
  namespace: 'api'
});

此资源应在app / api / companies_controller.rb

中定义
namespace :api, defaults: {format: 'json'} do
  resource :companies
end

执行此操作后,您可以启动以下环境:

ember server --proxy http://localhost:3000

请注意,这是由路径而非目录内的位置定义的。如果单独提供代理也很重要。

您可以查看此附加组件,以帮助合并两个:

https://github.com/thoughtbot/ember-cli-rails

希望它有所帮助。

答案 1 :(得分:0)

您必须记住,Ember路由与Rails API路由不同。 Ember路由在路径文件中定义,而rails路径在您的应用中定义,具体取决于您是使用控制器还是某些像Grape这样的宝石。因此,如果您使用Rails应用程序中定义的某些路由点击Ember应用程序,它可能无法工作,因为Ember路由器可能不存在该路由,除非您将Rails API路由完全映射到Ember路由器,这几乎不是这种情况。

我建议您检查Ember路由器中可用的路线。