2011-09-27 3 views
1

저는 ROR 세계의 초보자이며 ActiveAdmin을 사용하여 아티스트 포트폴리오 웹 사이트에 대한 관리자 패널을 디자인하려고합니다. 아이디어는 각 아티스트가 로그인/비밀번호가 있으며 자산을 관리 할 수 ​​있다는 것입니다.ActiveAdmin에 대한 디자인 질문

모델은 AdminUser 테이블에서 has_many로 설정되고 링크 된 모델에서는 belongs_to로 설정됩니다. 예를 들어 AdminUser has_many Videos가 있습니다. 많은 연결된 자산이 있습니다.

은 무엇 최선의 방법이 될 것입니다 그래서 :

  • 현재 관리 사용자 로그인은 자신의 자산에 액세스 할 수 있습니다?
  • 현재 로그인 한 AdminUser는 newluyy 생성 자산마다 admin_user_id 필드 으로 설정되어 있습니까?

도움 주셔서 감사합니다.

답변

0

이 답변이 정확한지 확실하지 않습니다.

Q1. 현재 로그인 한 AdminUser는 자신의 자산에만 액세스 할 수 있습니다.

a1. 귀하의 인증 프레임 워크에 cancan을 사용하십시오. 기본적으로 ActiveAdmin은 권한 부여 기능을 제공하지 않습니다. 그래서, 키 코드는 외모처럼 수 https://github.com/ryanb/cancan

Q2 : 캉캉이 (아주 쉽게, 당신이 15 분에 해결할 수있는)를 사용하여 더 자세한 단계

# in your app/models/ability.rb 
class Ability 
    include CanCan::Ability 
    def initialize(user) 
    can :read, Asset, :admin_user_id => user.id 
    end 
end 

, 참조하시기 바랍니다. 현재 로그인 한 AdminUser는 생성 된 각 newluyy 자산에 대한 admin_user_id 필드로 설정됩니다.

A2 : AdminUser는 단지 "사용자"모델입니다. 그래서, 당신은 뷰와 컨트롤러에서 이것을 "current_user"라고 보통의 Devise 방식으로 부를 수 있습니다. 예 : https://github.com/plataformatec/devise

: 고안의 자세한 내용

#in your controller 
def create_xx 
    # save the admin_user_id to the newly created asset. 
    Asset.create(:admin_user_id => current_user.id) 
end 

, 공식 웹 사이트를 참조하십시오