2013-08-01 107 views
3

js我想創建一個帶骨幹的Rails應用程序。唯一的問題是,我似乎無法弄清楚後端的情況以及前端的情況。我正在使用的方法是將rails本質上用作API。骨幹和鐵軌。你爲什麼設置骨幹路線?

我正在尋找各種不同的方法,我似乎不太明白爲什麼你在骨幹網路由以及使用普通的路由路由。

我的理論是: 您使用rails來顯示最初的html頁面,並且您使用backbone路由將javascript文件路由到該html頁面,以便您可以在那裏執行DOM操作。

這裏是我的代碼從哪裏得到了這個想法的一部分。 (注:這是所有主要採取從瑞安貝茨railcast上Backbone.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:方法的頂部的views/main/index.html.erb的JavaScript? (我知道其實那些複製的JavaScript線爲index.html.erb文件無法正常工作,它只是一個概念上的問題)

回答

5

骨幹的設計在單頁面應用程序使用,因此它有一個不大使用Rails路由。所有Rails所要做的就是登陸一個.html頁面,其他所有內容都是客戶關心的問題。 如果你打算使用Rails作爲API,那麼它的路由根本就不重要。你甚至可以在不同的服務器上保留Rails應用程序和前端。在這種情況下,Rails必須做的是來自客戶端的處理請求

例如,您可以構建您的客戶端而不與任何後端綁定,它們可以絕對分開。您只需從客戶端進行AJAX調用,然後服務器處理它們並使用JSON進行響應。

另外,Backbone不會「將javascript文件路由到該html頁面」。它只是根據散列「route:action」執行函數。這些只是普通的JavaScript函數,它們已經可以「看到」在文檔中工作的JavaScript。

+0

謝謝!我現在明白了 – user2158382