(RAILS) 멀티 모델 컨트롤러 및 인덱스 뷰를 설계…?
-
06-07-2019 - |
문제
현재 단일 사이트 관리자 페이지에서 여러 모델을 관리하고 있습니다. 나는 다음과 같은 관계가 있습니다.
Sites -> Buildings -> Meters -> Values
각 "사이트"항목 옆에 "편집 | 삭제 | 각"건물 옆에 "건물을 추가하기"항목은 "편집 | 삭제 | 삭제 | 미터"항목 옆에 "편집 | 삭제 | 값 추가"가 있습니다. "value"항목 나는 "편집 | 삭제"가 있습니다.
이 시점에서 나는이 페이지를 관리하는 "sitemanagercontroller"라는 프랑켄스테인 컨트롤러가 있습니다. 나는 단순히 다음과 같은 방법 (및 경로 파일에 해당 경로)을 가지고 있습니다.
add_site
add_building_to_site
add_meter_to_building
delete_site
delete_building
delete_meter
그러나 내가 궁금한 점은 기존 항목 컨트롤러 CRUD 메소드를 사용하는 동안 "SiteManager"페이지 및 컨트롤러에 적합한 RJS 파일을 렌더링 할 수있는 품질 메커니즘이 있는지 여부입니다.
Rails가 컨트롤을 리디렉션하는 동안 (시각적으로뿐만 아니라 문맥 상)를 만들거나 "SiteManager"컨트롤러로 되돌아 가거나 Rails를 리디렉션하는 동안 원래 컨트롤러로 경로를 유지할 수 있다면 좋을 것입니다. 삭제. 나는 양식을 다루지 않고 단순히 인덱스 페이지와 여러 "link_to_remote"s입니다.
나는 아마도 잘못된 질문을 할 것입니다. 그래서 그것을 고려하십시오 ... 어쨌든 나는 제안에 열려 있습니다.
최고.
해결책
종료 항목 컨트롤러 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