2016-10-20 2 views
1

그래서 전자 상거래 사이트가 있고 다른 웹 사이트 (제조 공급 업체)와 내 레일 (4) 앱을 연결하여 주문을 표시하고 인벤토리를 측면에서 업데이트하도록해야합니다. 일명 두 개의 레일 앱 사이에서 데이터베이스와 모델을 공유해야합니다. 납품업자 웹 사이트는 FYI 다만 건축되지 않는다, 나는 처음부터 그것을 건축해야한다.두 개의 레일 앱 데이터베이스와 모델을 함께 연결하려면 어떻게해야합니까?

사이드 노트 : 사용자 지정 관리자 패널이 더 쉬울 것이라고 알고 있지만, 내 상사가 기술을 전혀 모르는 사람은 두 회사를 소유하고 있음에도 불구하고이 URL을 별도의 URL로 가지고 있다는 것을 확고하게 받아들이고있는 것으로 보입니다. 및 제조 회사.

내가 뭘 찾고 있는지 정확히 알지 못하기 때문에 로드맵이 필요하거나 올바른 방향으로 연결해야합니다. 이 작업을 수행하는 방법에 대한 단단한 정보.

저는 현재 기존 레일 앱에 heroku와 AWS를 사용하고 있습니다. DB로 PostgreSQL을 사용합니다. (가) 아래에 잘못 될 수도 있지만 잘하면 당신에게 아이디어를 줄 것이다, 그래서

답변

2

당신은 establish_connection

을 사용해야합니다 내가 한 번만 이런 종류의 일을했습니다. 모델을 연결하면 무슨 뜻인지 알 수 없습니다. 그러나 이렇게하면 공급 업체 db를 쿼리하고 해당 데이터베이스와 관련된 네임 스페이스를 사용하려는 모델을 가질 수 있습니다.

나는 설정을 거라고 난 다음에 다른 모든

class VendorApplicationRecord < ActiveRecord::Base 
    self.abstract_class = true 
    establish_connection "vendor_#{ Rails.env }" 
end 

에서 상속 기본 공급 업체 모델을 것

공급 업체 데이터베이스 (각 환경에 아마 하나)에 대한 database.yml을의 항목 당신이 vendor_development 등을 가지고 database.yml을 설정한다고 가정하십시오.

2

데이터베이스를 공유하는 것은 매우 쉽습니다. 실제로는 데이터베이스를 공유하지 않는 것과 같습니다. database.yml에 적절한 구성을 지정하고 모델을 선언하기 만하면됩니다.

이제는 "이봐, 그게 코드 중복이야! 내가 왜 보석 같은 모델을 추출하지 않을까?"라고 생각할 수도 있습니다. 내가 말하는 것은하지 마라. 필요한 것을 복제하십시오. 한 응용 프로그램에서는 유효성 검사, before/after_save 후크 및 기타 등의 완전한 모델이 필요합니다. 그리고 다른 앱은 데이터를 읽을 뿐이므로 복잡한 작업이 필요 없습니다.

관련 문제