ruby-on-rails - 主干和 rails 。为什么要在 Backbone 中设置路由?

标签 ruby-on-rails ruby-on-rails-3 backbone.js coffeescript

我想创建一个带有主干的 Rails 应用程序。唯一的问题是,我似乎无法弄清楚后端和前端的内容。我使用的方法是将 Rails 本质上用作 API。

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

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

这是我的代码的一部分,我从那里得到了这个想法。 (注意:这主要来自于backbone.js 上的Ryan Bates railcast)

Backbone 路由器

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)

View /主/index.html.erb
<div id="index_container"></div>

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

最佳答案

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

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

此外,Backbone 不会“将 javascript 文件路由到该 html 页面”。它只是根据散列“route: action”执行函数。这些只是普通的 JavaScript 函数,它们已经可以“看到”在文档中运行的 JavaScript。

关于ruby-on-rails - 主干和 rails 。为什么要在 Backbone 中设置路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18003153/

相关文章:

ruby - 为什么缺少一些 rake 任务?

html - 如何获取 backbone.js 模型中的 cookie 值?

javascript - 如何重新启动/重新初始化 Backbone Marionette 模块

ruby-on-rails - 返回 ID 数组

ruby-on-rails - 如何从 Carrierwave Uploader 对象引用父模型

ruby - 使用 Passenger 部署轨道

ruby-on-rails - 有没有办法从 Rails 控制台查看方法的源代码?

javascript - Backbone Marionette : Marionette. 应用程序导致 Require.js 模块加载错误, "' 错误:模块名称 'App' 尚未加载上下文:_”

ruby-on-rails - Ruby on Rails 搜索数组(事件记录)

ruby-on-rails - rails : Can I disable the better_errors gem in certain domains?