0

我目前正在从一个 SITE MANAGER 页面管理多个模型。我有以下关系:

Sites -> Buildings -> Meters -> Values

在每个“站点”项目旁边我有“编辑|删除|添加建筑物”在每个“建筑物”项目旁边我有“编辑|删除|添加仪表”在每个“仪表”项目旁边我有“编辑|删除|添加值”每个旁边“价值”项目我有“编辑|删除”

在这一点上,我有一个名为“SiteManagerController”的科学怪人控制器来管理这个页面。我只是有一个方法(以及路由文件中的相应路由),如下所示:

add_site
add_building_to_site
add_meter_to_building

delete_site
delete_building
delete_meter

然而,我想知道的是,是否有一种质量机制可以使用现有的项目控制器 CRUD 方法,同时能够为“SiteManager”页面和控制器呈现适当的 RJS 文件?

如果我能以某种方式路由到原始控制器(以便不必手动重写所有方法),同时在创建或删除。请记住,我不是在处理表单,而只是一个 INDEX 页面和多个“link_to_remote”

我很可能问错了问题,所以请考虑一下……无论如何,我愿意接受建议。

最好的。

4

1 回答 1

0

您绝对可以使用现有的项目控制器 CRUD 方法。您可以指向link_to_remote任何 url,它会插入您指示它的 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
于 2009-06-23T04:42:33.527 回答