2013-09-04 3 views
0

내 응용 프로그램에 Planning 클래스가 있습니다. 이 클래스는 사용자에 따라 세 가지 클래스 (System, Subsystem 또는 Subsubsystem)에 속할 수 있습니다. 더 명확히하려면 사용자가이 세 클래스 중 하나에서 Planning을 생성 할 수 있어야합니다.다중 상위 하위 클래스 (레일)

모델에 문제가 없지만 내 plannings_controller#new에 무엇을해야할지 모르겠다.

new 방법은 어머니 클래스가 시스템 인 경우 같을 것이다 것입니다 :

@system = System.find(params[:system_id]) 
@planning = @system.plannings.build 

respond_to do |format| 
    format.html # new.html.erb 
    format.json { render json: @planning } 
end 

사람이 나에게 그것을 알게 될 것입니다 수 있도록 plannings 컨트롤러를 관리하는 방법을 말할 수있는 클래스는 어머니 클래스입니까?

감사합니다.

+0

그래서'System','Subsystem'와 같은 DB 테이블에'Subsubsystem'지도? 이 경우 부모 모델'GenericSystem'이 있어야하고 정확한 모델을 지정할 필요가 없습니다. 왜냐하면 시스템은'#plannings'에 다형성이 있기 때문입니다. – akhanubis

+0

지금 STI를 (를) 검색했으며 멋진 솔루션 인 것 같습니다. 감사합니다. – ianobraczka

답변

0

멀티 부모 자식 클래스는 다중 상속 언급하는

에 의해, 당신은 루비 같은 건이없는 알고 있다면. (다형성)

+0

나는 상속을 언급하지 않고있다. 나는 관계를 언급하고있다. 어머니 클래스! = 수퍼 클래스 – ianobraczka

0

http://guides.rubyonrails.org/association_basics.html 당신이 STI를 사용하고

 
class Planning < ActiveRecord::Base 
    belongs_to :plannable, :polymorphic => true 
end

class System < ActiveRecord::Base has_one :planning, :as => 'plannable' end

class Subsystem < ActiveRecord::Base has_one :planning, :as => 'plannable' end

+0

멋지다! 하지만 어떻게 내 plannings_controller # 새로운 방법이 물건을 사용합니까? STI를 사용하는 것이 좋을까요? 감사합니다 – ianobraczka

+0

당신이 선호하는 경우 sti도 사용할 수 있습니다 .. 시스템 클래스가 모두 simillar 인 경우 –

관련 문제