2009-09-24 2 views
1

필드를 nested object forms 레일즈 2.3의 기능과 함께 사용할 수 있습니까?Rails 중첩 된 객체 양식으로 선택 필드 사용

예 :

당신이 제 모델 종류 모델이 있다고 가정하고, ArticleCategories 모델을 가입 할 수 있습니다. 제 has_many 카테고리 through ArticleCategories.

편집 기사 양식에서 사용 가능한 모든 카테고리의 HTML select 목록이 필요합니다. 사용자는 Article에 할당 할 하나 이상의 Category 이름을 선택할 수 있습니다 (다중 선택 사용).

이렇게하는 방법은 많이 있지만 중첩 된 개체 기능을 사용하여이를 수행하는 간단한 방법이 있는지 궁금합니다. 보기에서 양식이 어떻게 보이나요?

답변

2

체크 아웃 Github에서의 중첩 된 형태의 예 : 나는 그것을보고 있기 때문에

http://github.com/alloy/complex-form-examples

그것은 잠시왔다, 그래서 당신 싶어 할 정확히 다루고 있지만 있는지 확실하지 않습니다 자사의 좋은 아이디어/패턴.

1

이 작업을 수행 할 수 있도록이 모델과의 관계를 정의 가정 :

다음
@art = Article.find(article_id) 
@art.categories # returns list of category objects this article is assigned to. 

나는 보통 당신은 자바 스크립트 공공/자바 스크립트로 파일을 복사 할 필요가 http://trendwork.kmf.de/175

사용하지만 그 이후로 당신 다음과 같은 형태로 양식 요소를 만들 수 있습니다.

swapselect(:article,@art,:categories,Category.find(:all).map { |cat| [cat.name, cat.id] }) 

(나는 도우미로 호출하여이를 호출하는 경향이 있습니다. 사과 : 청소기)

하나의 작은 잡았다가 있기 때문에 아주 긴 목록을 위해 매우에 appendChild의 많은 IE6

업데이트에 notorioulsy 느린 인 JS에서 호출 IE6에서 조금 느린을 실행할 수 있다는 것입니다. 이것은 레일즈 2.3 기능에 관한 원래 질문에 실제로 대답하지 않습니다. swapselect 옵션은 버전 독립적이며 새로운 Rails 기능을 사용하지 않습니다.

+0

swapselect는 훌륭합니다. 나는 다른 프로젝트에서 그것을 사용했다. – jaaronfarr

+0

swapselect는 다음에서 다운로드 할 수 있습니다. http://trac6.assembla.com/ve_designer_portal/browser/trunk/public/javascripts/swapselect.js – gparis