3

js,我想创建一个带有主干的rails应用程序。唯一的问题是,我似乎无法弄清楚后端发生了什么以及前端发生了什么。我使用的方法是本质上将 Rails 用作 API。

我正在研究各种不同的方法,但我似乎不太明白为什么要在骨干网中路由以及使用普通的 Rails 路由。

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

这是我从中得到这个想法的代码部分。(注意:这一切主要取自 Ryan Bates railcast onbone.js)

骨干路由器

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)

意见/主要/index.html.erb

<div id="index_container"></div>

那么这个主干路由是否等同index:于在顶部的方法中加载 javascript views/main/index.html.erb?(我知道实际上将这些 javascript 行复制到 index.html.erb 文件中是行不通的,这只是一个概念问题)

4

1 回答 1

5

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

例如,您可以构建您的客户端,而无需与后端有任何硬性联系,它们可以完全分开。您只需从客户端进行 AJAX 调用,然后服务器对其进行处理并使用 JSON 进行响应。

此外,Backbone 不会“将 javascript 文件路由到该 html 页面”。它只是根据哈希“路由:动作”执行功能。这些只是普通的 JavaScript 函数,它们已经可以“看到”在文档中工作的 JavaScript。

于 2013-08-01T20:12:32.267 回答