HABTM 네스트된 리소스에 대한 도움말
묘사
사용자/연락처 및 그룹 보유cancan 불러오기와 권한 부여 자원을 사용하고 있습니다
연락인과 단체 사이에는 많은 연락이 있다.
내가 만든 연락처 리스트에서, 나는 호출하고 있다. 그룹, 내가 본 것은 모든 그룹이다. 사용자가 가지고 있는 그룹이 아니라.
내 cancan 능력 파일에서, 나는 항상 can:manage,Contact,:user id=>user를 넣는다.그것은 단지 그가 가지고 있는 사용자 연락처만 자동으로 표시할 뿐이다.나는 문서에서 그것을 일하게 하려고 한다. 예를 들어 can:manage,Contact:user id=>user 등이다.id,:groups=>{:user id=>user.id} 그러나 나는 그것을 일하게 할 수 없다. 나는 단지 멋대로 추측하고 있을 뿐이다.
그룹과 연락처는 사용자 밑에 끼워져 있습니다. 그룹에 있을 때 컨트롤러 cancan은 내 그룹만 표시하지만, 연락처에서 그룹 목록을 가져오려고 시도할 때, 끼워 넣는 것을 무시합니다.
역할 영역을 만드는 것을 통해 해결 방법을 찾았지만, 그것은 엉망이었다. (contacts->new에서 내 @groups.ownedbyuser (현재 사용자) 를 생성하고formtastic에서 사용하십시오:collection@groups. 그러나 이 작업을 자동으로 완성할 수 있기를 바랍니다.
도와주세요.
진심으로
Jbeasley
토론 #1
당신은 직접 이런 연락처로부터 그룹을 얻었습니까?contact.groups
기본 활동 기록 동작을 덮어쓰지 않으므로 CanCan을 건너뜁니다.범위accessible_by
를 추가해야 합니다.contact.groups.accessible_by(current_ability)
만약 효과가 있다면 저에게 알려 주세요.토론 #2
나는 연락처에서 그룹을 얻지 못했다. 왜냐하면 사용자가 연락처를 만들 때 가지고 있는 그룹을 원하기 때문이다.도움말을 통해 접근할 수 있기 때문에 사용자 정의 범위를 사용할 필요가 없습니다.현재 내 연락처 및 컨트롤러
def new
@groups = Group.accessible_by(current_ability)
end
내 형식으로. <%= f.input :groups, :collection => @groups, :as => :check_boxes, :label => 'Groups' %>
그러나 나는 내 표가 이렇기를 바란다.(이하 모든 그룹을 되돌려줍니다 - 저는 cancan이 현재 사용자가 가지고 있는 그룹만 표시하기를 원합니다)
<%= f.input :groups, :as => :check_boxes, :label => 'Groups' %>
나는 칸칸이 이 점을 해낼 수 있을 것 같아서, 나는 방금 어떻게 해야 할지 확정했다.토론 #셋
나는 그것을 더 좋아한다. 왜냐하면 @groups=Group을 넣는 것을 좋아하지 않기 때문이다.new &edit actions 토론 #4
에서 (현재 능력) 방문할 수 있습니다. 분명히 저는 장애인입니다.나 이렇게 할 수 있어.<%= f.input :groups, :collection => @user.groups, :as => :check_boxes, :label => 'Groups' %>
현재 사용자 그룹만 표시하는 cancan을 통과합니다.토론 #5
호출@user.groups
은 사용자groups
를 통해 연결되기 때문에 주어진 사용자의 그룹만 가져옵니다.그것은 고비를 넘지 않을 것이다.능력 클래스의 그룹 권한을 변경하면 표시되지 않지만, 변경할 필요가 없으면 @user.groups
정상적으로 작동할 수 있습니다.토론 #6
해명해 주셔서 감사합니다.루비/rails에 의하면 이것이 가장 좋은 방법입니까 아니면 가장 적합한 방법입니까
그렇습니까?
그리고 어떻게 해야만 팀을 캔캔캔을 통과시킬 수 있습니까?이 가능하다, ~할 수 있다,...
나는 루비의 신출내기여서 어떤 나쁜 습관도 기르고 싶지 않다.
2011년 5월 28일 오전 11:28, "ryanb" [email protected]
쓰기:
Calling
@user.groups
goes through the User'sgroups
association so it's only fetching the groups for the given user. It's not going through CanCan there. If you change the group permissions in the Ability class it won't be represented there, however if you don't need to change it then@user.groups
will work fine.Reply to this email directly or view it on GitHub: https://github.com/ryanb/cancan/issues/388#comment_1254226
토론 #7
이렇게 하는 것은 칸칸이 현재 추천하는 방식이다.<%= f.input :groups, :collection => Group.accessible_by(current_ability), :as => :check_boxes, :label => 'Groups' %>
이렇게 하면 Ability
클래스에 정의된 모든 제한이 여기에 반영됩니다.그러나 이전 릴리즈에서는 작동하지 않으므로 CanCan 1.6.5를 사용해야 합니다.
토론 #8
네가 바로 그 사람이야!감사합니다!
2011년 5월 30일 오후 1:39, "ryanb" [email protected]
쓰기:
Doing this is the current recommended way in CanCan.
ruby <%= f.input :groups, :collection => Group.accessible_by(current_ability), :as => :check_boxes, :label => 'Groups' %>
This way any restrictions you define in the
Ability
class will be reflected here.However be certain you're using CanCan 1.6.5 because it won't work in earlier versions.
Reply to this email directly or view it on GitHub: https://github.com/ryanb/cancan/issues/388#comment_1262535
Reference
이 문제에 관하여(HABTM 네스트된 리소스에 대한 도움말), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/ryanb/cancan/issues/388텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)