2011-04-29 3 views
3

:레일 3 : 다른 컨트롤러의 관점에서 작업을 렌더링하기 위해 어떻게 다른 컨트롤러의 관점에서 작업 호출하기 위해 노력하고있어

컨트롤러 Countries는 모든 국가에서 html로 선택 박스를 생성 selectbox라는 작업이 있습니다 부분.
컨트롤러 Customers에는 모든 고객 속성에 대해 html 양식을 생성하는 new이라는 작업이 있습니다. 이 양식에 Countries#selectbox의 선택 상자를 삽입하고 싶습니다.

이것을 달성하는 올바른 방법은 무엇입니까?

답변

1

당신이하고있는 일을 위해 도우미 방법으로 코드를 추출하는 것이 올바른 방법입니다. 당신은 또 다른에서 오전 작업을 사용하려는 경우에는, 이것은 당신이 사용할 수있는 플러그인 공식 레일입니다 : 링크에 대한

https://github.com/rails/render_component

2

잘못하고 있습니다. 재사용 될 코드 조각 (예 : html 선택 상자 생성)이있는 경우 헬퍼에 넣거나 html 선택 상자 부분을 렌더링하기 위해 부분을 사용해야합니다.

코드가 다소 복잡한 경우 (예 : 한두 줄 이상) 좋은 조언 일 수 있습니다. 여기에 당신을 도울 수있는 인터넷 검색 중에 찾은 게시물이 있습니다 : helper or partial

+0

감사합니다. 나는 부분적으로 내 코드를 남기기로 결정했다. 그러나 또 다른 문제가 있습니다 : AJAX를 통해 선택 상자를 재사용하고 부분이 컨트롤러 '국가'에 속하기를 원합니다. 다른 컨트롤러에서보기 내에서 작업을 호출하는 방법이 있습니까? – silent

+0

@silent는 '셀'이라고하는 보석을 확인하거나 '레일 셀'에 대해 Google을 체크 아웃합니다. –

관련 문제