(Rails)构建多模型控制器和索引视图…?
-
06-07-2019 - |
题
我目前正在通过一个SITE MANAGER页面管理多个模型。我有以下关系:
Sites -> Buildings -> Meters -> Values
在每个“网站”旁边项目我有“编辑|删除|添加建筑物“ 在每个“建筑物”旁边项目我有“编辑|删除|添加仪表“ 除了每个“米”之外。项目我有“编辑|删除|添加价值“ 除了每个“价值”之外。项目我有“编辑|删除"
此时我有一个名为“SiteManagerController”的frankensteined控制器。管理这个页面。我只是有一个方法(和路由文件中的相应路由),如下所示:
add_site
add_building_to_site
add_meter_to_building
delete_site
delete_building
delete_meter
然而,我想知道的是,是否存在使用现有项目控制器CRUD方法的质量机制,同时能够为“SiteManager”呈现适当的RJS文件。页面和控制器?
如果我可以以某种方式路由到原始控制器(以便不必手动重写所有方法),同时还将轨道重定向控制(不仅仅是在视觉上,而是在上下文中)返回到“SiteManager”,这将是很好的。控制器创建或删除后。请记住,我不处理表单,只是一个INDEX页面和多个“link_to_remote”s
我很可能会提出错误的问题,所以请考虑......无论如何,我愿意接受建议。
最佳。
解决方案
您绝对可以使用现有的项目控制器CRUD方法。您可以在任何网址指向 link_to_remote
,它会插入您指示的html。只要你在 routes.rb
中保留默认路由,一切都应该正常。这将使用户保持在SiteManager页面上,但他将在幕后与RESTful路由进行交互。
link_to_remote "Edit", :update => "site_#{site.id}",
:url => site_url(site), :method => :put
link_to_remote "Add Building", :update => "new_building", :url => buildings_url,
:method => :post
SitesController < ApplicationController
def update
@site = Site.find(params[:site_id])
@site.update_attirbutes!(params[:site_id])
render :partial => @site
end
end
BuildingsController < ApplicationController
def create
@building = Building.create(params[:building])
render :partial => @building
end
end
不隶属于 StackOverflow