2013-03-30 2 views
1

Я пытаюсь создать проект в рельсах и ember.js через драгоценный камень ember-rails. Я сделал rails generate ember:bootstrap, и я наблюдаю за деревом, которое он создал под assets/javascripts.ember.js каталог различий маршрутов и файл router.js

Я не могу понять, в чем разница между вещами, которые я должен положить в файл routes.js на верхнем уровне, а также в файлах внутри папки /routes.

ответ

1

В routes.js файл в верхней части, вы будете определять маршруты и ресурсы, например:

Вы можете использовать этот rails app в качестве руководства. Код, который я использую в этом ответе, исходил из этого репо.

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/posts/show_route.js и добавить наш код там:

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 строк кода. Если вы предпочитаете определять маршруты верхнего уровня и их настройку в этом же файле. Ты можешь. Вот another rails app это делает только это.

+0

Отлично! Спасибо –

+0

Добро пожаловать. ура – brg

Смежные вопросы