남자! 나는 올바른 아키텍처 결정을 내리고있다.Ruby On Rail의 일부 모델을로드
기본적으로 다른 사용자의 일부 필드는 내 사이트 사용자에게 숨겨야한다. 그래서 내가 좋아하는,에서 모든 필드를로드 할 할 뷰의 필드를 필터링 귀찮게하지 : 필드의 나머지는 특별한 경우를 명시 적으로로드해야
default_scope -> { select(column_names - FILTERED_PARAMS) }
.
문제는 일단 코드가 누락 된 필드를 참조하면 nomethod 오류가 나타납니다. 나는이 분야를 메타 프로그램했지만 그다지 효과가 없었습니다. 이 접근법은 AR 객체 라이프 사이클에 맞지 않는 것으로 보인다.
어떤 패턴을 선택한 경우 이러한 기능을 구현 한 적이 있습니까?
고맙습니다! 결정은 매우 복잡한 인증 정책과 다양한 역할을위한 변형 된 필드 액세스에 의해 결정되었습니다. html 외에도 레일즈 서버는 JSON 끝점에도 서비스를 제공합니다. 그래서 뷰 레벨 필터를 엉망으로 만들고 싶지 않고 쉬운 솔루션을 얻으려고 노력했습니다. –
그렇다면 일반적으로 선택에 대해 입력 변수로 배열을 사용한다고 생각하지 않습니다. -> {select (* (allowed_params - notallowed_params))}와 같은 것이 필요할 것입니다. –