레일즈는 MVC 패러다임을 사용합니다. 모델, 뷰 및 컨트롤러에서 흥미 롭습니다. 실제로 컨트롤러에만 '응용 프로그램'또는 상위 컨트롤러가 있습니다. 실제로 레일에 application_helper가 있지만 실제로 많은 일을하지는 않습니다. 모델과 실습 도우미에서 부모가없는 application_controller 만 있으면됩니까?MVC 패러다임. 왜 application_controller인가?
답변
모델에는 부모가 있습니다. ActiveRecord :: Base ApplicationController는 너무 일반적이어서 인증/권한 부여 등을 위해 웹 응용 프로그램에 필요한 응용 프로그램 전체 필터를 볼 수 있기 때문에 있습니다. 응용 프로그램 도우미는 다시 도우미 메서드 하나의 컨트롤러 범위를 넘어 애플리케이션 전반에 걸쳐 사용됩니다.
Active :: Record는 부모보다 mixin에 가깝다고 생각합니다. – s84
모델은 응집력이 있으며 MVC 프레임 워크에서 가장 독립적 인 엔티티라고 가정합니다. 이런 맥락에서, Model vs Controller를 비교하는 것은 좋지 않습니다.
도우미는보기를 지원하는 항목입니다. 예를 들어, 다른 뷰에서 재사용 할 수있는 뷰 내에 레일 코드의 일부를 작성하게 될 수도 있습니다. 이러한 시나리오의 경우 도우미가 구조에 나옵니다.
컨트롤러는보기와 기본 모델을 이상적으로 말해야하는 컨트롤러입니다. 논리적으로 모든 컨트롤러의 부모가 있어야하며이를 수행 할 애플리케이션 컨트롤러가 있어야합니다.
그리고 레일스 MVC 프레임 워크의 모든 클래스에는 부모가 있습니다. - ActiveRecord :: Base는 모델의 부모이며, ActionController :: Base는 컨트롤러의 부모입니다. 헬퍼는 뷰를위한 것이므로 적어도 명시 적으로는 부모가 없습니다.
레일에 대해 일반적 MVC의보다 구체적으로는 모든 일반 컨트롤러에 공통으로 취급 한 바와 같이
일반 컨트롤러, 유익한, 상기 특정 제어기 전에 행한다. 모델이 혜택을 누릴 수있는 몇 가지 일반 속성이있을 수 있다는 점에서 모델에도 동일하게 적용됩니다. 이것은 일반적으로 상속에 의해 더 잘 수행 될 수 있습니다. 상속에서 모델은 "응용 프로그램 모델"을 상속합니다.
따라서 일반 컨트롤러는 볼 수 있지만 모델은 볼 수 없습니다. 이미 모델에서 일반적인 동작을 얻는 방법이 있지만 contollers에서는 그렇지 않습니다.
- 1. ASP.NET MVC 양식 GET 패러다임 배열
- 2. 스레딩 패러다임?
- 3. 프로그래밍 패러다임 만들기
- 4. 프로그래밍 패러다임 실용 가이드?
- 5. 다중 패러다임 언어
- 6. GUI 패러다임 내역
- 7. OOP의 패러다임 (파이썬에서)
- 8. Mac OS X 개발을위한 대체 패러다임
- 9. OO 제약이 많은 프로그래밍 패러다임
- 10. cx_Oracle 및 데이터 소스 패러다임
- 11. JTable 다중 필터 디자인 패러다임
- 12. ASP.NET MVC - 왜 귀찮게해야합니까?
- 13. MVC 왜 단위 테스트 컨트롤러
- 14. Page_Load Windows Forms의 패러다임 ?? 이게 뭐야?
- 15. "1 문서 당 URL 패러다임"이란 무엇입니까?
- 16. 러닝 밸런스 및 데이터베이스 정규화 패러다임
- 17. ASP.NET MVC View에서 foreach 루프가 왜 느린가요?
- 18. asp.net MVC ModelState가 Unit Test에서 null입니다. 왜?
- 19. MVC 왜 편집에서 가끔씩 UpdateModel이 사용 되는가?
- 20. MVC View와 AbstractView - 왜 둘 다요?
- 21. ASP.NET MVC 3 주석 표시 - 왜 모델입니까?
- 22. ASP.NET MVC 사용자 인증 - 왜 그렇게 정교해야합니까?
- 23. 오류 처리 패러다임 : 예외 및 오류 코드 믹싱
- 24. 프로그래밍 언어/패러다임 (서브 텍스트/예제 중심 프로그래밍)
- 25. MVC 및 Android 프레임 워크, 무엇을 선사하고 왜?
- 26. 왜 내 ASP.net MVC 웹 사이트에서 페이지를 저장할 수 없습니다
- 27. 왜 내 ASP.NET MVC 응용 프로그램의 편집 코드가 작동하지 않습니까?
- 28. 왜 내 asp.net mvc 프로젝트에서 참조 된 nhibernate.dll이 필요합니까?
- 29. 이것은 왜 Firefox에서만 작동합니까? Asp.net MVC 부분보기의 렌더링 및 아약스
- 30. 왜 나를 uploadify 및 asp.net mvc 2 좋은 재생되지 않습니다?
흥미로운 토론이 시작되었습니다. +1 – apneadiving