저는 RoR을 배우고 있으며, 제가 해결하기 위해 노력하고있는 일반적인 디자인 문제가 있습니다. 나는 어떤 종류의 모범 사례를 따르도록하기 위해 답을 얻고 싶다.Ruby on Rails에서 서브 컨트롤러를 사용하려면 어떻게해야합니까?
3 개의 하위 섹션으로 구성된 페이지가 있습니다. A, B 및 C라고 부르기로합니다. 특정 동작으로 인해 AJAX를 통해 새로 고침이 발생하므로 컨트롤러 액션을 갖도록하고 싶습니다. 페이지 크롬없이 개별적으로 렌더링 할 수 있습니다.
I 현재이 구조화 한 방법은 4 작업 갖는 컨트롤러이다 지수, A는 B, C
의 각각은, B, 그리고 C는 레이아웃의 뷰를 렌더링을 => 거짓이므로 필요한 경우 AJAX를 통해 그 조각을 렌더링 할 수 있습니다. 그런 다음 색인을 가지고 A, B 및 C보기와 함께 추가 자료를 렌더링합니다.
필자가 원하는 것은 3 개의 하위 제어기와 필요에 따라 하위 제어기를 호출하는 마스터 제어기입니다. 또는 내가 은 내가 원하는 바를라고 생각합니다. 내가 A, B, C 각각에 대해 컨트롤러에서 수행하는 설정이 있기 때문에 부분보기가 아니라고 생각합니다. 그런 다음 인덱스 용 컨트롤러와 컨트롤러 용 설치 코드를 모두 복제해야합니다. 알파벳.
내가 생각하고있는 코드는 다음과 같은 것입니다 :
my_controller.rb :
class MyController < ApplicationController
def index
@aOutput = A
@bOutput = B
@cOutput = C
render //can use @aOutput, @bOutput, @cOutput in the view
end
def A
render :layout => false
end
def B
render :layout => false
end
def C
render :layout => false
end
end
이 내가 전체 페이지를 할 때 지금에 액세스 할 MyController에 # 인덱스를 저를 활성화하고 MyController에 # 것 A, 등등. 각 하위 섹션의 내용을 다시 렌더링하고 싶습니다.
코드가 이와 같이 구성되어 있으면 MyController # index에 액세스 할 때 DoubleRender 오류가 발생합니다. 이런 종류의 일에 접근하는 올바른 방법은 무엇입니까? 여기에서 만든 가정을 날려 버리십시오. 전체 페이지를 다시로드하지 않고 필요에 따라 개별적으로 업데이트 할 수있는 세 개의 섹션이있는 유일한 요구 사항 만 있으면됩니다.
이 답변은별로 도움이되지 않습니다. 이는 일반적인 디자인입니다. 필요에 따라 AJAX를 통해 대체 할 수있는 페이지 내의 특정 HTML 청크가있는 페이지를 만듭니다. 각 교체 가능한 부분이 레일스 액션에 해당하고 전체적으로 페이지가 상상할 수도 있습니다. 나는 그 조각들을 적절하게 함께 묶는 법을 모르겠습니다. 이 방법을 벗어나거나 일부 디자인 원칙을 위반하는 경우, 나는 그 방법을 알고 싶습니다. 무작위로 정적 인 단어가 일부 약어를 위반하고 책을 읽으라고 말하면 전혀 유용하지 않습니다. 책을 읽고 싶으면 여기에서 묻지 않을 것입니다. – LAW
그래서 책을 읽지 않으려 고하기 때문에 stackoverflow에 대한 질문을하고 싶습니다. 간단히 [ "SOLID design principles"] (http://www.google.co.in/search?sourceid=chrome&client=ubuntu&channel=cs&ie=UTF-8&q=SOLID+design+principles&qscrl=1)를 검색하면 내 뜻을 이해하게하는 첫 번째 결과. 하지만 그렇게하고 싶지 않은 것 같습니다. – Chirantan