Devise를 사용하여 Pundit을 사용하는 데 관심이 있지만 Rolify와 통합되거나 독립형 인 경우 많은 정보를 찾을 수 없습니다. CanCanCan은 Rolify와 잘 어울리 며 롤 모델을 좋아합니다. Pundit과 Rolify가 함께 사용하지 않는 주요 이유가 누락 되었습니까?Pundit이 CanCanCan처럼 Rolify와 결합되지 않은 이유는 무엇입니까?
8
A
답변
35
왜 함께 사용하지 않습니까?
1
최근에 devise.Pundit을 사용하여 Pundit gem을 Rails 4와 함께 사용했지만 내 경험에 따라 Rolify에 의존하지 않는 독립형 시스템입니다.
Rolify를 사용하는 대신 사용자에게 역할을 할당하고 보유하고있는 역할을 확인하는 데 도움이되는 기존 개발자 테이블에 역할을 추가하기 위해 마이그레이션을 만들었습니다.
내 프로젝트를 위해 만든 스키마에서 봐 주시기 바랍니다 : is_admin
및 is_daily_user
필드가 사용자 역할에 대한 추가
create_table "users", force: true do |t|
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
t.datetime "created_at"
t.datetime "updated_at"
**t.boolean "is_admin"
t.boolean "is_daily_user"
.
희망이 도움이됩니다.
+2
이것은 작동하지만 확장 할 수는 없습니다. is_premium 사용자를 추가하려고한다고 가정 해보십시오. DB 모델을 변경해야합니다. 대신 사용자 당 원하는만큼 많은 역할 이름을 만들 수있는 own_to 사용자의 고유 한 모델 UserRole (: id, : role_name)을 만드십시오. 그래도 Rolify gem을 사용했습니다.) – luigi7up
학자가 Rolify와 함께 잘 작동합니다) 그들은 쉽게 사실이
같은 방식으로 사용할 수
rolify
및pundit
가 결합되지 않는다는 것은 뭔가 좋은, 그리고 디자인 실패 , 또는 다른 역할 시스템. – sevenseacat@sevenseacat 이것은 또한 올바른 대답입니다 – MicFin