Rails에서 gem 'six'를 구성 할 수 없습니다.

user3164249

내 앱에서 다른 역할로 프로젝트에서 Rails 4를 사용하고 있으며 사용중인 다른 역할에 대해 다른 액세스 권한을 부여해야합니다 gem 'six'. 하지만 구성 할 수 없습니다.

내에서 user Model정의

ROLES = %w[ ADMIN STUDENT TEACHER ]

내 애플리케이션 컨트롤러

 before_action :add_abilities
 helper_method :abilities, :can?

 def abilities
   @abilities ||= Six.new
 end

 private
 def can?(object, action, subject)
   abilities.allowed?(object, action, subject)
 end
 def add_abilities
   abilities << Ability
 end

내 능력 .rb

`

class Ability
  class << self
    def allowed(user, subject)
      return [] unless user.kind_of?(User)

      case subject.class.name
      when "School" then school_abilities(user, subject)
      when "Standard" then standard_abilities(user, subject)
      when "Section" then section_abilities(user, subject)
      when "Subject" then subject_abailities(user, subject)
      when "Test" then test_abilities(user, subject)
      when "Teach" then teach_abitities(user,subject)
      when "Study" then Study_abilities(user,subject)
      when "Participate" then participate_abilities(user, subject)
      else []
      end.concat(global_abilities(user))
    end

    def global_abilities(user)
      rules = []
      rules << :create_school
      rules
    end

    def school_abilities(user, school)
      rules = []

      # if User::ROLES.first == "ADMIN"
      #   rules += school_admin_rules
      # end
      # if User::ROLES.last == "TEACHER"
      #   rule += school_teacher_rules
      # end
      # if User::ROLES.second == "STUDENT"
      #   rule += school_student_rules
      # end
      if user.role == "ADMIN"
        rules += school_admin_rules
      end
      if user.role == "TEACHER"
        rule += school_teacher_rules
      end
      if user.role == "STUDENT"
        rule += school_student_rules
      end

      rules.flatten
    end

    def school_student_rules
      [
        :read_test
      ]
   end

    def school_teacher_rules
      [
        :read_test,
        :write_test,
        :modify_test,
        :create_test
      ]
    end

    def school_admin_rules
      [
        :admin_school,
        :change_school,
        :rename_school,
        :remove_school,
        :modify_school,
        :write_school
      ]

    end

    [:issue, :note, :snippet, :merge_request].each do |name|
      define_method "#{name}_abilities" do |user, subject|
        if subject.school == user
          [
            :"read_#{name}",
            :"write_#{name}",
            :"modify_#{name}",
            :"admin_#{name}"
          ]
        elsif subject.respond_to?(:teach) && subject.teach == user
          [
            :"read_#{name}",
            :"write_#{name}",
            :"modify_#{name}"
          ]
        elsif subject.respond_to?(:study) && subject.study == user
          [
            :"read_#{name}",
            :"write_#{name}"
          ]
        else
          subject.respond_to?(:school) ? school_abilities(user, subject.school) : []
        end
      end
    end

  end
end

`

선택한 역할이 교사 인 경우 그녀는 다른 컨트롤러가 아닌 테스트 컨트롤러에만 액세스 할 수 있습니다. 어떻게 할 수 있습니까? 누군가 나를 도와주세요. 미리 감사드립니다

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Rails 서버 실행 오류-gem 'sass-rails'를로드 할 수 없습니다.

분류에서Dev

Ubuntu 14.04에서 qemu를 구성 할 수 없습니다.

분류에서Dev

Oracle에서 리스너를 구성 할 수 없습니다.

분류에서Dev

jboss에서 spring으로 jsf를 구성 할 수 없습니다.

분류에서Dev

jboss에서 spring으로 jsf를 구성 할 수 없습니다.

분류에서Dev

fedora 23에서 Apache (httpd)를 구성 할 수 없습니다.

분류에서Dev

KDE에서 프린터를 구성 할수 없습니다

분류에서Dev

Apache 2.4 / redhat 7.0에서 Phabricator를 구성 할 수 없습니다.

분류에서Dev

일부 서비스를 구성 할 수 없습니다.

분류에서Dev

IntelliJ에 자바 (11)를 구성 할 수 없습니다

분류에서Dev

React 구성 요소에 State를 설정할 수 없습니다.

분류에서Dev

Rails Client Side Validations Gem에서 undefined 메소드 'add'를 호출 할 수 없습니다.

분류에서Dev

Rails에서 앱 서버와 웹 서버를 구별 할 수 없습니다.

분류에서Dev

ReactNative 중첩 구성 요소에서 onPress를 수행 할 수 없습니다.

분류에서Dev

컴퓨터에서 생성 된 gem을 사용할 수 없습니다.

분류에서Dev

rails generate ckeditor : install에서 생성기를로드 할 수 없습니다.

분류에서Dev

JPanel의에서 구성 요소를 제거 할 수 없습니다

분류에서Dev

기능 구성 요소에서 상태를 설정할 수 없습니다.

분류에서Dev

typescript에서 Apolloserver의 데이터 소스를 구성 할 수 없습니다.

분류에서Dev

npm 스크립트에서 Autoprefixer를 제대로 구성 할 수 없습니다.

분류에서Dev

Ionic serve --devapp에서 'undefined'의 속성 'styles'를 구조화 할 수 없습니다.

분류에서Dev

React에서 구성 요소를 업데이트 할 수 없습니다.

분류에서Dev

Google 애널리틱스에서 목표를 구성 할 수 없습니다.

분류에서Dev

Packard Bell Dot S에서 Wi-Fi를 구성 할 수 없습니다.

분류에서Dev

구성 요소 내에서 [routerLink]를 사용할 수 없습니다.

분류에서Dev

plunkr에서 실행되도록 react-router를 구성 할 수 없습니다.

분류에서Dev

구성 요소에서 상태를 설정할 수 없습니다.

분류에서Dev

Maven에서 리소스 경로를 구성 할 수 없습니다.

분류에서Dev

CMake에서 OpenCV를 구성하고 빌드 할 수 없습니다.

Related 관련 기사

  1. 1

    Rails 서버 실행 오류-gem 'sass-rails'를로드 할 수 없습니다.

  2. 2

    Ubuntu 14.04에서 qemu를 구성 할 수 없습니다.

  3. 3

    Oracle에서 리스너를 구성 할 수 없습니다.

  4. 4

    jboss에서 spring으로 jsf를 구성 할 수 없습니다.

  5. 5

    jboss에서 spring으로 jsf를 구성 할 수 없습니다.

  6. 6

    fedora 23에서 Apache (httpd)를 구성 할 수 없습니다.

  7. 7

    KDE에서 프린터를 구성 할수 없습니다

  8. 8

    Apache 2.4 / redhat 7.0에서 Phabricator를 구성 할 수 없습니다.

  9. 9

    일부 서비스를 구성 할 수 없습니다.

  10. 10

    IntelliJ에 자바 (11)를 구성 할 수 없습니다

  11. 11

    React 구성 요소에 State를 설정할 수 없습니다.

  12. 12

    Rails Client Side Validations Gem에서 undefined 메소드 'add'를 호출 할 수 없습니다.

  13. 13

    Rails에서 앱 서버와 웹 서버를 구별 할 수 없습니다.

  14. 14

    ReactNative 중첩 구성 요소에서 onPress를 수행 할 수 없습니다.

  15. 15

    컴퓨터에서 생성 된 gem을 사용할 수 없습니다.

  16. 16

    rails generate ckeditor : install에서 생성기를로드 할 수 없습니다.

  17. 17

    JPanel의에서 구성 요소를 제거 할 수 없습니다

  18. 18

    기능 구성 요소에서 상태를 설정할 수 없습니다.

  19. 19

    typescript에서 Apolloserver의 데이터 소스를 구성 할 수 없습니다.

  20. 20

    npm 스크립트에서 Autoprefixer를 제대로 구성 할 수 없습니다.

  21. 21

    Ionic serve --devapp에서 'undefined'의 속성 'styles'를 구조화 할 수 없습니다.

  22. 22

    React에서 구성 요소를 업데이트 할 수 없습니다.

  23. 23

    Google 애널리틱스에서 목표를 구성 할 수 없습니다.

  24. 24

    Packard Bell Dot S에서 Wi-Fi를 구성 할 수 없습니다.

  25. 25

    구성 요소 내에서 [routerLink]를 사용할 수 없습니다.

  26. 26

    plunkr에서 실행되도록 react-router를 구성 할 수 없습니다.

  27. 27

    구성 요소에서 상태를 설정할 수 없습니다.

  28. 28

    Maven에서 리소스 경로를 구성 할 수 없습니다.

  29. 29

    CMake에서 OpenCV를 구성하고 빌드 할 수 없습니다.

뜨겁다태그

보관