2012-09-03 2 views
16

관련 모델을 만드는 과정을 내 사용자에게 덜 고통스럽게 만드는 데 필요한 내 자신의 사용자 지정보기를 만들고 있습니다. 모든 모델을 인라인으로 표시하고 편집 할 컨트롤을 표시하고 싶습니다. 이것은 기본 필드에 대한 내 자신의 롤 꽤 쉽습니다,하지만 차라리 인라인 모델의 연관에 대한 form_filtering_select 부분을 사용하고 싶지만,이 일을하기 위해 어떤 문서를 찾을 수 없습니다.사용자 정의보기에서 rails_admin 양식을 사용 하시겠습니까?

답변

0

당신이 원하는 것을 거의하는 시원한 보석이 있습니다. Nested Form Fields이라고합니다. 한 페이지에 레코드 (has_many 연관과 함께)를 편집 할 수 있습니다. 멋진 점은 jQuery를 사용하여 페이지를 다시로드하지 않고 양식 필드를 동적으로 추가/제거한다는 것입니다. 적절한 사용을 위해 보석 docs을 체크 아웃하십시오. 희망이 도움이됩니다!

+0

중첩 된 양식 필드를 사용하여 예제를 추가하면 현상금을 제공합니다. – max

1

당신은 Nested Form

가 프로젝트 리더 방법에서 프로젝트 인스턴스의 배열을 반환하고 projects_attributes = 작가 방법에 응답하는 사용자 클래스 고려 사용할 수 있습니다

class User 
    def projects 
    [@project1, @project2] 
    end 

    def projects_attributes=(attributes) 
    # Process the attributes hash 
    end 
end 

참고 그 projects_attributes = 작가 메소드는 사실 fields_for가 정확하게 프로젝트를 콜렉션으로 식별하고 올바른 색인을 양식 마크 업으로 설정하는 데 필요합니다.

프로젝트는 당신이 당신을 위해 작가 방법을 정의하는 accepts_nested_attributes_for 사용할 수있는 사용자에 대한 관련 이미 :

class User < ActiveRecord::Base 
    has_many :projects 
    accepts_nested_attributes_for :projects 
end 

이 모델은 이제 중첩 된 fields_for와 함께 사용할 수 있습니다가. 중첩 된 fields_for 호출에 주어진 블록은 컬렉션의 각 인스턴스에 대해 반복됩니다

<%= nested_form_for @user do |user_form| %> 
    ... 
    <%= user_form.fields_for :projects do |project_fields| %> 
    <% if project_fields.object.active? %> 
     Name: <%= project_fields.text_field :name %> 
    <% end %> 
    <% end %> 
    ... 
<% end %> 

여기에 자세한 내용은 Reference 간다.

+0

이 예제에서 특성 해시를 처리하기 위해 작성하는 예제가 있습니까? – pappy

관련 문제