열 client_id가 데이터베이스를 통해 유비쿼터스되고 주어진 세션 또는 요청에 대해 우리는 클라이언트의 '컨텍스트'에있게됩니다 시각.Active :: Record로 일부 열에 의해 데이터베이스가 분할 된 것처럼 보이게하는 방법
단순한 데이터베이스 관리를 위해 동일한 테이블에 유지하면서 각 클라이언트의 데이터를 별도의 데이터베이스에 저장하는 방법을 시뮬레이션 할 수 있습니까? 내가 원하는 것은 기본 범위와 유사하지만 모든 요청에 대해 변경되므로로드 타임에 고정 될 수 없습니다.
# invoices table data
# -------------------
# id client_id amount
# 1 1 100.00
# 2 2 100.00
with_client(Client.find(1)) do
Invoices.all # finds only invoice 1
Invoices.find(2) # finds nothing or raises
end
어떻게 액티브하여이 작업을 수행 할 수 있습니다, 또는 어떤 점에서 나는 수술이 동작에 영향을 AR을 바꿀 수 있을까?
추가 포인트 : ID가이 CLIENT_ID 컬럼의 갱신을 방지하기 위해 좋아 - 그것은 멀티 tenanted 응용 프로그램에 대해 설명 프리젠 테이션 here가 만들 시간
이 시나리오에 대한 다른 생각 : http://www.linkedin.com/answers?viewQuestion=&questionID=698205&askerID=3854479 –
이 다른 스택 오버플로 문제도 매우 비슷합니다. http://stackoverflow.com/questions/1603178/rails-best-practice-to-scope-sub-based 하위 도메인 –