2009-03-12 5 views
2

사용자가 페이지와 상호 작용할 때 divs를 만들고 숨기려는 자바 스크립트 마법이 있습니다. 각 div에는 내 응용 프로그램의 일부 뷰가 포함되어 있으며 이러한 뷰의 각 모델 인스턴스에는 소유자가 있습니다. 페이지를 탐색하는 사람이 소유자가 아니라면 데이터를 볼 수 있습니다. 그러나 사용자가 데이터 소유자 인 경우 편집보기가 표시됩니다.레일 폼을 제출하면 현재 뷰에서 벗어나는 것을 피할 수 있습니까?

모든 div의 상태를 숨기고 사용자가 변경 사항을 제출했을 때와 똑같이 페이지를 다시 렌더링 할 수는 있지만, 트랜잭션은 다음의 라인을 따라 진행됩니다. 사용자가 버튼을 전송하면 서버 프로세스가 변경되고 다시 확인 메시지가 전송되고 화면에 사소한 변경이 있으면 트랜잭션 완료 알림이 깜박입니다.

누구나 작동 예제에 대한 포인터가 있습니까? 구현을위한 임계 값은 여기에서 요구하는 것을 수행하는 것이 더 쉬운 지 아니면 총알을 물지 않고 거래를 통해 div 상태를 수행하는 것이 더 쉬운 지 여부가 될 것입니다.

답변

0

필요한 것은 Ajax의 마법입니다. remote_form_for 또는 기타 Prototype Helpers 중 하나를 살펴보십시오.

3

Freund에서 언급했듯이 remote_form_for가 최선의 방법입니다. RJS의 대시와 함께 그만두면 몇 분 :

# Form 
- remote_form_for(@obj, :url => obj_path(@obj)) do |f| 

    = f.text_field :some_attribute 
    = f.submit "Submit" 


# Controller action 

def edit 
    respond_to do |wants| 
    wants.html { } 
    wants.js { 
     render :update do |page| 
     page.replace_html :some_div, "Some content" 
     end 
    } 
    end 
end 
관련 문제