2010-07-20 5 views
1

엔터프라이즈 시스템의 테이블 필드에 대한 메타 데이터를 추가 할 응용 프로그램을 만들고 있습니다.레일스 : 동적으로 양식을 생성하는 가장 좋은 방법

tableA 
fieldX 

tableB 
fieldX 

에 관계없이 테이블, 내가 속성을 추가 할 : 특정 필드가 같은 여러 테이블에 존재할 수

table_name 
field_name 
Field_type 
field_length 
... 

:

내가 같은 테이블 정의 정보를 검색하는 table_structure 모델이 현장에 그렇게되도록

fieldX :has_many :attributes 

및 속성 모델 woul d가

:field 
:attribute 
:value 

많은 특성을 캡처 할 수있는 단일 양식을 만들고 싶습니다. 중첩 된 형태의 railscast를 보았으므로 원하는대로 할 수 있지만 캡처 한 속성이 변경 될 수 있으므로 양식을 여러 입력 유형으로 동적으로 생성하고 싶습니다.

이 메서드를 특성 모델에 추가하고 어떻게 든 반복하여 양식을 생성 할 생각이었습니다.

def self.attributes_types 
    {'Business Essential' => {:field_type=>:radio,:values=>[:y,:n,nil],:default_value=>nil}} 

    {'Owner' => {:field_type=>:text}} 
    end 

중첩 된 양식은 갈 길입니까? 필자는 필드를 필드에 추가하는 것이 아니라 속성을 필드에 전달하기 때문에 매개 변수 [: field]를 으로 전달하고이를 새 특성에 사용합니다. 이 양식을 만드는 또 다른 방법이 있습니까?

답변

0

당신이 올바른 길을 가고 있다고 생각합니다. 속성에 대한 중첩 필드는 길입니다. 앞으로 새로운 속성이 도입 될 예정이라면 속성 정의를 모델에서 정의하는 대신 데이터베이스 테이블에 저장하는 것이 좋습니다.

0

저는 일반적으로 문서 지향 데이터베이스 시스템을 권장하지 않지만 전통적인 SQL 백엔드 대신 MongoDB를 사용하는 것이 좋습니다. 백엔드와 관계없이 중첩 된 양식이 필요합니다. 일부 헬퍼를 빌드하여 데이터베이스에 저장된 메타 데이터를 기반으로 양식에 동적으로 추가 할 수 있습니다.

관련 문제