骨干和导轨.为什么要在骨干网中设置路由?

use*_*382 3 ruby-on-rails coffeescript backbone.js ruby-on-rails-3

我和我想创建一个带有主干的rails应用程序.唯一的问题是,我似乎无法弄清楚后端会发生什么以及前端会发生什么.我使用的方法是使用rails作为API.

我正在寻找各种不同的方法,我似乎不太明白为什么你在骨干网中路由以及使用普通的铁路路由.

我的理论是:您使用rails来显示初始html页面,并使用主干路由将javascript文件路由到该html页面,以便您可以在那里执行DOM操作.

这是我的代码的一部分,我从中得到了这个想法.(注意:这主要来自于关于backbone.js的Ryan Bates铁路广播)

骨干路由器

class Poster.Routers.Posts extends Backbone.Router
    routes:
        '':'index'
        'posts/:id': 'show'

    initialize: ->
        @collection = new Poster.Collections.Posts()
        @collection.fetch({reset: true})


    index: ->
        view = new Poster.Views.PostsIndex(collection: @collection)
        $('#index_container').html(view.render().el)
Run Code Online (Sandbox Code Playgroud)

视图/主/ index.html.erb

<div id="index_container"></div>
Run Code Online (Sandbox Code Playgroud)

那么这个骨干路由必不可少的只是加载index:在顶部的方法中的javascript views/main/index.html.erb?(我知道实际上将这些javascript行复制到index.html.erb文件中不会起作用,这只是一个概念性的问题)

Eug*_*dov 5

Backbone设计用于单页面应用程序,因此它与Rails路由有点关系.所有Rails必须做的是登陆.html页面,其他一切都是客户关注的.如果您打算将Rails用作API,那么它的路由根本不重要.您甚至可以将Rails应用程序和前端保留在不同的服务器上.在这种情况下,Rails所要做的就是处理来自客户端的请求.

例如,您可以构建客户端而不与后端建立任何紧密关系,它们可以完全分开.您只需从客户端进行AJAX调用,然后服务器处理它们并使用JSON进行响应.

此外,Backbone不会"将javascript文件路由到该html页面".它只是根据散列"route:action"执行函数.这些只是简单的JavaScript函数,已经可以"看到"在文档中工作的JavaScript.