내 앱은 사용자뿐만 아니라 Admins 및 SuperAdmins도 가지고 있습니다. 세 가지 모두 동일한 속성을 공유하기 때문에 내가 "사용자", "관리자"또는 "super_admin"이 될 수 있습니다 추가 속성 "역할"을 하나 개의 테이블을 사용하고 싶습니다 :레일즈 : ActiveRecord의 default_scope 및 클래스 상속
class User < ActiveRecord::Base
# with nickname and password
end
class Admin < User
def power
puts "admin rights"
end
end
class SuperAdmin < Admin
def superpower
puts "I've got the #{power}!"
end
end
지금은 원하는 SuperAdmins 만 얻으려면 SuperAdmin.all
과 같은 것을하십시오. default_scope를 사용하여이 날 잡으려고 것 같다
class SuperAdmin < Admin
default_scope where(["role = ?", "super_admin"])
# ...
end
는 지금은 너무 관리자에게 default_scope을 추가 해요 :
class Admin < User
default_scope where(["role = ?", "admin"])
# ...
end
Aaaand ... SuperAdmin.all 더 이상 아무 것도 반환하지 않습니다. 왜 그런가요?