레일 3.2.12 앱에서 액세스 규칙에 따라 new/edit
개의보기 (simple_form 사용)의 필드를 선택적으로 표시하고 싶습니다. 예를 들어 영업의 경우 고객의 name
및 phone#
만 표시 할 수 있습니다. 우리는 액세스 규칙이 무엇인지 알지 못하기 때문에 런타임에보기를 동적으로 구성해야합니다. 이를 수행하는 한 가지 방법은보기에서 if
을 사용하는 것이고보기가 더러워집니다. 우리는 custom
양식 빌드가 도움이 될 것으로 생각했습니다. 사용자 정의 양식 작성 도구에 대한 온라인 게시물 몇 개를 읽은 후에도 여전히 단서가 많지 않았습니다. 누군가가 custom
양식 작성 도구로이를 구현하는 방법에 대한 세부 정보를 제공 할 수 있습니까? 도와 주셔서 감사합니다!레일즈 3.2.12에서 사용자 정의 폼 빌더를 사용하여 새/편집보기에 필드를 선택적으로 표시하는 방법은 무엇입니까?
업데이트 : 액세스 규칙이 어떤 것인지 알 수 없으므로 dynamically
은 실행시에 view
을 생성해야합니다.
우리가 simple_form을 사용하고 있는지 얘기를 깜빡 했네요. 자체 인증 모듈을 구축했습니다. 우리가 이해 하듯이, CanCan은 컬럼 레벨 인증을하지 않습니다. – user938363
알겠습니다. CanCan이 사용자 지정 작업 (https://github.com/ryanb/cancan/wiki/Custom-Actions)을 사용하여 일종의 칼럼 레벨 인증을 할 수있게 만들지 만, 귀하의 경우 실제로 개선되지는 않는 것처럼 들립니다. 이미 SimpleForm을 사용하고 있으므로 모델에'accessible_columns_for_role' 메소드를 추가 (심볼 배열 반환) 한 다음 각 뷰에 대해'simple_form_builder.input'을 호출하여 뷰를 반복 할 수 있습니다. –
실제로 attr_accessible은 이미 ": as => : role"옵션을 지원하므로보기 루프에서 해당 옵션을 읽을 수있는 방법을 찾을 수 있습니다. –