Rails- 두 개의 컨트롤러 또는 작업 추가?
-
16-09-2019 - |
문제
관리자 섹션과 공개 직면 섹션이있는 웹 앱 설계. "색인"과 "show"를위한 공개 대면 컨트롤러가 약간 중복되는 것처럼 느껴집니다. 내가 읽은 모든 제안은 관리자를위한 네임 스페이스를 제안합니다. 추가 조치가있는 하나의 컨트롤러, "list_public"또는 그와 비슷한 것을 가지고 있어야하는지 궁금합니다.
나는 레일이 새로워지기 때문에 아마도 아무것도 걱정하지 않을 것입니다. 나는이 모든 컨트롤러, 뷰, 동일한 이름을 가진 도우미가 내 프로젝트 디렉토리 전체에 흩어져 있다는 아이디어를 좋아하지 않습니다.
누구든지 이것에 대한 통찰력이 있습니까? 미리 감사드립니다.
해결책
컨트롤러 (한 명과 한 명의 관리자)가 모두 최선의 솔루션이라고 말합니다.
이제 당신이 할 수있는 일은 두 컨트롤러가 작업에서 관련 조치를 수행하는 동일한 방법을 호출하는 것입니다.
class MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
end
end
class Admin::MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
# Admin only stuff goes here
end
end
다른 팁
Matt가 말했듯이, 당신은 또한 이것을 할 수 있습니다.
class MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
end
end
class Admin::MyController < MyController
def show
super
# Admin only stuff goes here
end
end
즉, 코드를 반복하지 않고 admin :: myController의보다 전문화 된 사례에 집중할 수 있습니다.
제휴하지 않습니다 StackOverflow