2012-01-29 3 views
0

안녕하세요. RoR에서 웹 앱을 구현하고 있습니다. 내 첫 번째 모델은 세 개의 필드가 입력 (체중, 신장 및 성별)하고 두 번째 모델은 두 개의 필드 (체중 및 신장)를가집니다. 저는 첫 번째 모델을 구현했으며 두 개의 필드가있는 모델을위한 별도의 모델을 만들려고합니다. 작업은 두 번째 모델 (구현하려고하는)에 데이터를 넣을 때 첫 번째 모델에서 모든 데이터 (즉 세 개의 필드가있는 데이터)를 추출한 다음 계산을 수행해야한다는 것입니다.Ruby on Rails에서 두 모델간에 데이터를 공유하는 방법

내 질문은 :

두 모델간에 동일한 데이터베이스가 공유 되나요? 어떻게 데이터를 입력하고 두 번째 모델 형식으로 제출할 때 첫 번째 모델에서 데이터를 추출해야합니까?

+0

두 모델 간의 논리적 관계는 무엇입니까? 그들은 관계를 가지고 있습니까? 아니면 둘 다 효과적으로 일반 부모 클래스의 하위 클래스입니까? 후자의 경우 아래의 STI 제안이 좋습니다. –

+0

그들은 어떤 관계도 가지고 있지 않습니다. 아직 두 번째 모델을 만들지는 않았지만 두 개의 모델이 있지만 그렇게 할 계획입니다. 내 프로젝트는 세 개의 필드가있는 주 모델의 데이터를 사용하고 작은 모델 (2 필드)보기에서 결과 출력을 표시합니다. –

답변

0

질문의 세부 사항에서 완전히 확실하지는 않지만 아마도 Single Table Inheritance 등이 여기에 도움이 될 수 있습니다.

기본적으로 당신이 가질 수있는 이러한 모델 :

class BaseModel < ActiveRecord::Base; end 
class ThreeFieldModel < BaseModel; end 
class TwoFieldModel < BaseModel; end 

마법의 type 열을 포함하여 모든 필드를 포함하는 것 마이그레이션 : 당신은 STI를 사용하기로 결정한 경우

create_table :base_model do |t| 
    t.string :type, null: false 
    t.string :weight 
    t.string :height 
    t.string :gender 
    t.timestamps 
end 

, 내가 하나를 읽고 추천 또는 이 주제에 관한 두 가지 자습서. Rails에서 STI를 올바르게 사용하면 어려울 수 있습니다.

관련 문제