Ruby on rails ember.js差异路由文件夹和router.js文件

Ruby on rails ember.js差异路由文件夹和router.js文件,ruby-on-rails,ember.js,ember-rails,Ruby On Rails,Ember.js,Ember Rails,我正试图通过ember rails gem在rails和ember.js中创建一个项目。 我制作了一个railsgenerate-ember:bootstrap,我正在观察它在assets/javascripts下创建的树 我不明白我必须放在顶层的routes.js文件和/routes文件夹中的文件之间有什么区别。在顶层的routes.js文件中,您将定义您的路由和资源,例如: 您可以使用此作为指南。我在这个答案中使用的代码来自回购协议 EmBlog.Router.map(function()

我正试图通过ember rails gem在rails和ember.js中创建一个项目。 我制作了一个
railsgenerate-ember:bootstrap
,我正在观察它在
assets/javascripts
下创建的树


我不明白我必须放在顶层的
routes.js
文件和
/routes
文件夹中的文件之间有什么区别。

在顶层的routes.js文件中,您将定义您的路由和资源,例如:

您可以使用此作为指南。我在这个答案中使用的代码来自回购协议

EmBlog.Router.map(function() {
  this.resource("posts", {path: '/posts'}, function(){
    this.route('new');
    this.route('show', {path: '/:post_id'}) ;
    this.route('edit', {path: '/:post_id/edit'});

 });
});
如果希望自定义这些路由或资源中的任何一个,则可以在/routes文件夹中创建一个新文件。例如,如果我们想通过定义一个事件来自定义显示路线,以删除该路由器中的帖子,并使用模型钩子自定义返回的数据,那么我们需要在中创建一个文件并在那里添加代码:

EmBlog.PostsShowRoute = Ember.Route.extend({

 model: function(params) {
  return EmBlog.Post.find(params.post_id);
 },

 setupController: function(controller, model){
  controller.set('content', model);
 },

 events: {
  destroyPost: function(post) {
   post.deleteRecord();
   post.get('store').commit();
   this.transitionTo('posts');
  }
 }

});

拆分路由的想法是确保它不会变得太大或充满100行代码。如果您喜欢在同一文件中定义顶级管线及其自定义项。你可以。这里就是这样做的。

在顶部的routes.js文件中,您将定义您的路由和资源,例如:

您可以使用此作为指南。我在这个答案中使用的代码来自回购协议

EmBlog.Router.map(function() {
  this.resource("posts", {path: '/posts'}, function(){
    this.route('new');
    this.route('show', {path: '/:post_id'}) ;
    this.route('edit', {path: '/:post_id/edit'});

 });
});
如果希望自定义这些路由或资源中的任何一个,则可以在/routes文件夹中创建一个新文件。例如,如果我们想通过定义一个事件来自定义显示路线,以删除该路由器中的帖子,并使用模型钩子自定义返回的数据,那么我们需要在中创建一个文件并在那里添加代码:

EmBlog.PostsShowRoute = Ember.Route.extend({

 model: function(params) {
  return EmBlog.Post.find(params.post_id);
 },

 setupController: function(controller, model){
  controller.set('content', model);
 },

 events: {
  destroyPost: function(post) {
   post.deleteRecord();
   post.get('store').commit();
   this.transitionTo('posts');
  }
 }

});
拆分路由的想法是确保它不会变得太大或充满100行代码。如果您喜欢在同一文件中定义顶级管线及其自定义项。你可以。这里有一个就是这样做的