쉬운 관리자 패널 - Rails 6

2386 단어 railstutorialruby
Rails 애플리케이션에 관리자 패널을 두는 것은 솔직히 말해 사용자를 추적하고 권한을 부여할 때 가장 좋은 일입니다. 그러나 관리자 패널을 갖는 방법을 찾는 것은 어려운 일이었습니다. 주로 내가 올바른 것을 찾고 있지 않았기 때문입니다. rails_admin gem , 너무 간단하지만 많은 것을 제어할 수 있습니다! 설치 및 사용은 사용하려는 대상에 따라 매우 간단합니다. 나는 아마도 admin이라는 부울 속성을 가진 사용자와 함께 devise을 사용하고 있다고 말해야 할 것입니다.

 create_table "users", force: :cascade do |t|
...
    t.boolean "admin", default: false
...
  end


설치



설치는 모두 gemfile에 gem ‘rails_admin’를 넣고 터미널에서 bundle를 실행하는 것으로 시작됩니다. 번들을 만든 후에는 rails admin Generatorrails g rails_admin:install를 실행해야 합니다. 그렇게 하면 질문이 표시됩니다. 계속 진행하고 Enter 키를 누르십시오. 생성기가 완료되면 새 경로("/admin")와 초기화 프로그램도 생성됩니다.

이제 기본적으로 모든 것이 작동합니다. http://localhost:3000/admin으로 이동하면 관리자 패널로 이동해야 합니다! 모든 것이 어디에 있는지 느끼고 싶은 만큼 탐색할 수 있습니다.

이제 이니셜라이저에 일부 권한 부여를 추가해야 합니다. config/initializers/rails_admin.rb로 이동하여 다음 코드 줄을 추가하면:

   config.authorize_with do
      redirect_to main_app.root_path unless warden.user.admin == true
    end


엄청난! 이제 관리자 패널에 액세스할 수 있는 유일한 사용자는 관리자입니다. 자신과 관리자가 터미널에서 rails c를 사용하여 레일즈 콘솔로 이동하고 다음 3줄을 입력해야 하는 경우:

u = User.first
u.admin = true
u.save 


이제 사용자에게 관리자가 있으므로 관리자 패널에서 문제를 해결할 수 있습니다.

관리자 패널로 이동



Rails 경로를 확인하면 맨 위에 rails_admin이라는 새로운 경로가 있음을 알 수 있습니다. 이를 사용하여 관리자만 액세스할 수 있는 탐색 버튼을 얻습니다. 헤더 또는 탐색 모음이 있는 위치로 이동하여 원하는 위치에 다음 코드 줄을 추가합니다.

<%= link_to "Admin Panel", rails_admin_path, class:"btn btn-default mb-2 lg:mr-2 lg:mb-0 block" if admin? %>


관리자가 있습니까? 도우미 메서드이므로 사용자가 관리자인 경우 관리자 패널에 대한 탐색 버튼을 볼 수 있습니다. 이렇게 하려면 application_helper.html.erb의 도우미로 이동하여 다음 메서드를 추가해야 합니다.

   def admin?
        user_signed_in? && current_user.admin?
    end


그게 다야! 이제 설정하기 쉽고 사용하기 쉬운 완벽한 관리자 패널이 생겼습니다!

좋은 웹페이지 즐겨찾기