我目前正在开发一个包含 4 个嵌套模型的 Rails 应用程序(根据 THIS POST )。我考虑过使用 javascript 在一个页面上管理它们。它看起来是可行的(就像 Rails 中的许多事情一样),但是,我们并不强烈推荐它。
也就是说,我希望通过代理页面进行管理。目前模型结构如下:
Sites 'has_many' Buildings 'has_many' Controllers 'has_many' Measurements
我当前的目标是通过 Javascript“窗口”管理项目。例如,“站点”索引页面的每个站点列表旁边都会有“管理建筑物”。单击该链接将显示一个“建筑物”索引页面,其中仅包含该站点的现有建筑物以及添加新建筑物的能力。然后,当然,每个构建页面都会有“管理 Controller ”,依此类推。
考虑到这一点,在我埋头拆解“active_scaffold”等之前,有人对实现这种类型的对象管理有任何建议/建议吗?我的问题主要涉及必要的 Javascript 等,但是,如果您有任何“陷阱”,我当然也希望您知道。最好。
最佳答案
听起来是一个有趣的界面,只是一个想法...您可能需要考虑将 Controller 或测量放入对话框 View 中,只是为了减少 UI 困惑。这里是:
在您的 route :
map.resources :sites do |site|
site.resources :buildings do |building|
building.resources :controllers do |controller|
controller.resources :measurements
end
end
end
您可能需要分解前面的嵌套资源以降低复杂性。
站点 View
(为了简洁而用 HAML 编写):
%ul#sites{:style => 'float:left'}
-@sites.each 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)
});
);
提交上述 $.get 请求后返回部分建筑物:
-@buildings.each do |bldg|
%li= link_to bldg.name, building_controllers_path(bldg)
希望这有帮助!
关于javascript - (Ruby、Rails、Javascript)使用 javascript 窗口等管理嵌套模型...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/992264/