각 사용자가 다른 필드를 편집 할 수있는 단일 양식을 표시하고 싶습니다.레일 : 사용자 권한에 따라 편집 가능한/편집 할 수없는 필드
현재 코드는 다음과 같습니다
이<% if can? :update, item %>
` <%= f.text_field :title %>
<% else %>
<%=h f.object.title %>
<% end %>
내가 헬퍼의 시리즈 (각 필드 유형에 대해 하나)이 패키지 할 수 있습니다하지만 또한 사용자가 모든 업데이트 할 수 있는지 여부를 컨트롤러에 확인해야 제출 된 입력란 (악의적 인 사용자가 승인되지 않은 입력란을 제출하려는 경우)
이 유형의 작업을 위해 레일에 깨끗한 패턴이 있습니까? 이상적으로는 모델에서 이러한 액세스 권한을 정의하고 변경 내용을 컨트롤러 및 뷰에 전파하고 싶습니다.
편집 : readonly
태그를 사용하여이
실행 가능한 옵션이 아니다; 검증을 처리하지 않고 뷰 로직을 많은 CSS로 대체합니다. 최고의 절충안이 아닙니다.
그것은 그냥 화장품; CSS를 많이 쓰는 것을 선호하는지 (읽기 전용 컨트롤을 일반 텍스트처럼 스타일을 지정하기 위해) 선호하는지 또는보기에서 일부 추가 로직을 선호하는지에 따라 다릅니다. 그리고 컨트롤러 쪽 유효성 검사 문제는 해결하지 않습니다. – shmichael