2009-06-14 61 views
1

我目前正在開發一個帶有4個嵌套模型的Rails應用程序(根據THIS POST)。我已經考慮使用JavaScript來管理它們全部在一個頁面上。它似乎是可行的(就像Rails中的許多事情一樣),但是,它並不值得高度推薦。(Ruby,Rails,Javascript)使用javascript窗口管理嵌套模型等...?

這就是說,我期待通過代理頁面進行管理。目前的模型結構如下:

Sites 'has_many' Buildings 'has_many' Controllers 'has_many' Measurements 

我目前的目標是通過Javascript「窗口」管理項目。例如,「網站」索引頁面將在每個網站列表旁邊有「管理建築物」。然後點擊鏈接將彈出一個「建築」索引頁面,只有該網站的現有建築物以及添加新建築物的能力。然後,當然,每個建築頁面都會有「管理控制器」,等等等等。

考慮到這一點,在我將自己埋在撕開「active_scaffold」之前等等,有沒有人有任何建議/建議來實現這種類型的對象管理?主要是我的問題涉及必要的Javascript等,但是,如果您有任何「疑難雜症」,我當然也想知道。

最好。

回答

1

聽起來像一個有趣的界面,只是一個想法......你可能想考慮使控制器或測量到對話框視圖,只是爲了減少UI混亂。這裏所說:

在你的路線:

map.resources :sites do |site| 
    site.resources :buildings do |building| 
    building.resources :controllers do |controller| 
     controller.resources :measurements 
    end 
    end 
end 

你可能會想打出來的嵌套資源在前面,以降低複雜性。

站點視圖

(寫在HAML爲了簡明):

%ul#sites{:style => 'float:left'} 
    [email protected] do |s|  
    %li= link_to s.name, site_buildings_path(s) 

%ul#buildings 
    %li click on a site to view buildings for that site 

 

網站的JavaScript(jquery的):

$('ul#site > li a').live('click', function(){ 
    link = $(this).attr('href'); 
    $.get(link, function(data, textStatus){ 
    $('#buildings').empty().append(data) 
    }); 
); 

 

建築部分提交上述$不用彷徨請求後返回:

[email protected] do |bldg| 
    %li= link_to bldg.name, building_controllers_path(bldg) 

希望這有助於!