Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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 API+;余烬_Ruby On Rails_Ember.js - Fatal编程技术网

Ruby on rails 使用Rails API+;余烬

Ruby on rails 使用Rails API+;余烬,ruby-on-rails,ember.js,Ruby On Rails,Ember.js,我目前正在一个项目中使用RubyonRails和EmberJS。Rails应用程序是一个电子商务商店,最初需要加载10个型号。我正在考虑使用在初始页面加载时将模型作为json向下传递 我正在考虑使用ember cli来制作一个项目,当然,使用ruby on rails来制作API 如果我将应用程序分开,如何加载初始数据?在部署时,如何确保所有内容都在一台rails服务器上运行(考虑Heroku)?如果您只使用rails(不使用Ember CLI),则可以在应用程序布局中呈现每个gon对象,只需从

我目前正在一个项目中使用RubyonRails和EmberJS。Rails应用程序是一个电子商务商店,最初需要加载10个型号。我正在考虑使用在初始页面加载时将模型作为json向下传递

我正在考虑使用ember cli来制作一个项目,当然,使用ruby on rails来制作API


如果我将应用程序分开,如何加载初始数据?在部署时,如何确保所有内容都在一台rails服务器上运行(考虑Heroku)?

如果您只使用rails(不使用Ember CLI),则可以在应用程序布局中呈现每个gon对象,只需从gon全局中提取数据。这样做的好地方可能是您在Ember中的应用程序路径:

// routes/application.js

export default Ember.Route.extend({
  model: function() {
    return gon.myDataSet;
  }
});
但是,我建议您使用Ember CLI,如果您这样做的话,它会将rails应用程序布局(以及gon)从等式中剔除。相反,只需在rails应用程序上打开json端点,然后在Ember应用程序中获取它:

// routes/application.js

export default Ember.Route.extend({
  model: function() {
    return Ember.$.getJSON('/path/in/rails/app');
  }
});
然后,在开发过程中,在一个终端中运行rails服务器,然后使用代理选项运行ember服务器(从CLI目录):

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

至于部署,这是一个完整的蠕虫可以,但检查一下,因为它的目标是成为一站式部署余烬应用程序

这里的解决方案实际上是让Rails将ember应用程序作为静态资产提供,并通过手动将呈现的JSON插入到public/index.html中,使用Deface执行同事所称的“技术强奸”。我猜这就是为什么他们叫诽谤,诽谤。。。虽然您当然可以通过这种方式来完成这一点,但对于Ember来说,它并不习惯。尤其是Ember CLI的一大好处是,您可以完全独立于后端api开发前端。然而,这不一定是你在这里要问的,但我认为把它扔出去还是好的。