目前在了解如何在我的本地开发环境中将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应用程序显示了默认的“有些错误”页面,下面是我在控制台中收到的错误:
我希望有人可以解释我的设置可能出现的问题,这会导致此错误。
答案 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路由器中可用的路线。