내가 사용할 수있는 상자 옵션 중 어떤 잘 모르는 것 같아요 도움이되지만 어쨌든 이런 일에 떨어져 자신의 압연 좋을 것 희망 . 그것은 당신에게 더 많은 융통성을 허용 할 것이고, 구현하기가 끔찍하지 않아야합니다.
이
create_table :fields do |t|
t.string :type, null: false # TextField, ListField, etc.
t.jsonb :config, default: {}, null: false
t.belongs_to :contact
end
그런 다음 다른 사용하기 위해 필요한 하위 클래스 : 모델의 관점에서, 난 아마 아마 사용자 정의 옵션에 대한 jsonb
열 (가정 포스트 그레스)를 사용하여 필드에 단일 테이블 상속 테이블로 가고 싶어 -cases : 당신은 jsonb 열에 깨끗한 인터페이스 만들기 위해 jsonb_accessor
같은으로 볼 수
class Field < ApplicationRecord
belongs_to :contact
end
class TextField < Field
def required=(required)
config[:required] = required
end
end
class CheckboxField < Field
def default_checked=(default_checked)
config[:default_checked] = default_checked
end
end
.
은 마찬가지로, 단일 테이블 상속은 또한뿐만 아니라 연락처에 대한 감각을 만들 수 있습니다 그것과 같은 기본 테이블이 있어야 할 무엇인지,하지만 어쩌면 같은 :
create_table :contacts do |t|
t.string :type, null: false # Contact, Lead, Client
end
class Contact < ApplicationRecord
end
class Lead < Contact
end
앱은 멀티 테넌트 (multi-tenant)인가? –
예, 다중 거주자입니다. –