Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 主干及;轨道。为什么在主干网中设置路由?_Ruby On Rails_Ruby On Rails 3_Backbone.js_Coffeescript - Fatal编程技术网

Ruby on rails 主干及;轨道。为什么在主干网中设置路由?

Ruby on rails 主干及;轨道。为什么在主干网中设置路由?,ruby-on-rails,ruby-on-rails-3,backbone.js,coffeescript,Ruby On Rails,Ruby On Rails 3,Backbone.js,Coffeescript,js和我想创建一个带有主干的rails应用程序。唯一的问题是,我似乎无法弄清楚什么在后端,什么在前端。我使用的方法是将rails本质上用作API 我正在研究各种不同的方法,我似乎不太明白为什么您在主干网中进行路由以及使用正常的rails路由 我的理论是: 使用rails显示初始html页面,使用主干路由将javascript文件路由到该html页面,以便在那里执行DOM操作 这是我的代码中我从中得到这个想法的部分。(注意:这些内容主要来自backbone.js上的Ryan Bates railc

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

我正在研究各种不同的方法,我似乎不太明白为什么您在主干网中进行路由以及使用正常的rails路由

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

这是我的代码中我从中得到这个想法的部分。(注意:这些内容主要来自backbone.js上的Ryan Bates railcast)

骨干路由器

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)
views/main/index.html.erb

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


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

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

例如,您可以构建客户端,而不必与后端进行任何硬连接,它们可以完全分离。您只需从客户机发出AJAX调用,然后服务器处理它们并使用JSON进行响应

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