2009-06-23 5 views
0

저는 현재 단일 SITE MANAGER 페이지에서 여러 모델을 관리하고 있습니다. "각 옆에 "미터를 추가 | | 삭제 편집 "내가 가진 각"건물 "항목 옆에 "건물 추가 | | 삭제 편집 "내가 가진 각"사이트 "항목 옆에(Rails) 다중 모델 컨트롤러 및 인덱스 뷰 설계 ... ...?

Sites -> Buildings -> Meters -> Values 

: 나는 다음과 같은 관계가 Meter "항목이 있습니다."편집 | 삭제 | 값 추가 " 각"값 "항목 옆에"편집 | 삭제 "가 있습니다.

이 시점에서이 페이지를 관리하는"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"를 염두에 두십시오.

나는 틀린 질문을하고있을 가능성이 매우 높기 때문에 고려해보십시오 ... 어떤 경우에는, 제안을 위해 열립니다.

최고.

답변

0

절대적으로 기존 품목 컨트롤러 CRUD 방법을 사용할 수 있습니다. 당신은 어떤 URL이라도 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 
+0

그러나 어떻게 "렌더링 : 업데이트"하고 "SiteManager"색인 페이지에 영향을 줍니까? 각 항목의 컨트롤러에 해당 항목을 배치합니까? 작업이 완료되면 "SiteManager"컨텍스트에서 부분적으로 또는 잡아 먹는 rjs에 어떻게 영향을 미치는지 어떻게 알 수 있습니까? –