2011-08-10 3 views
0

레일즈 3.1.0.rc5를 사용하고 있습니다. 한 쌍의 라디오 버튼 enabledisable이있는 양식과 정수 (expire_after_days, 티켓 만료까지의 일 수)를 입력하는 필드와 고정 매개 변수 subdomain_name의 숨김 필드가 있어야합니다. 어떤 라디오 버튼이 선택되었는지에 따라 동일한 간단한 양식을 사용하여 레코드를 작성, 편집 또는 삭제할 수 있기를 원합니다.라디오 버튼 선택에 따라 제출시 양식 동작이 변경됨

enable을 확인한 경우 subdomain_name에 대한 레코드가 없으면 양식 제출시 레코드가 만들어집니다.

enable을 선택하고 레코드를 찾으면 양식 제출시 기존 레코드를 업데이트해야합니다.

disable을 선택하면 양식 제출시 해당 레코드를 삭제해야합니다.

이것은 합리적인 조치입니까? 그렇다면 어떻게해야할까요?

답변

1

이 3 개 조치 (작성, 갱신, 파괴) 하나의 제어 방법에 좁아가 이상적이나 편안 아니지만,이 더러운 노선에 계속하고자하는 경우 여기에 당신이 할 수있는 작업은 다음과 같습니다

def my_dirty_method 
    if params[:enable].present? 
    if params[:subdomain_name].present? 
     # Edit subdomain 
    else 
     # Create subdomain 
    end 
    end 
    if params[:disable].present? 
    # Delete subdomain 
    end 
+0

[편집 : 신경 쓰지 마, 이것이 일괄 업데이트 상황이라고 생각] 흠, 이상하게 편안하게 해결할 수 있을까요? AJAX는 모든 작업을 요구합니다 (또는 더 나쁜 것은 각 작업마다 페이지를 새로 고칩니다). 계정과 연결된 이메일 별칭이 있고 알림을받는 메일 별칭을 결정하려는 경우를 생각해보십시오. – agnoster

+0

사용자가 페이지를 볼 때마다 항상 동일한 시각적 정보를 제공하고 싶습니다. 항상 같은 URL에서 사용하고 싶습니다. 나는 현재 계획이 불안정하다는 것에 대한 당신의 요지를 본다. 보다 안락한 해결책을 제안 할 수 있습니까? – joanwolk

+0

나는 최종 URL을 동일하게 만드는 대신에,'new' 레코드 페이지 또는'edit' 레코드 페이지로 리디렉션 할 것인지를 결정하는 URL을 가지고 있습니다. 이제 생성, 업데이트 및 삭제를위한 별도의 컨트롤러 작업이 있습니다. 또한 더 이상 라디오 버튼을 사용하지 않는다는 것을 의미합니다. – joanwolk

관련 문제