2011-04-11 8 views
1

난 레일에 새로운 사람이야. 나는 양식 테이블을 제출하면 열 current_status가 내 테이블에 난 비계를 통해 만든 비계를 통해 만든 메일 컨트롤러와 메일 테이블을 가지고있다 상태는 제출 버튼 유형에 따라 설정됩니다 두 개의 버튼 중 하나는 저장하고 계속 진행 중입니다. 상태는 "in_progress"이고 다른 하나는 상태가 초안으로 저장되는 "초안에 저장"입니다. 어떻게해야합니까?제출 버튼에서 함수를 호출하는 방법은 무엇입니까?

답변

1

레일즈 폼 생성기를 사용하여 호출 할 함수 (자바 스크립트 함수라고 가정하고 있습니까?)를 지정할 수 있는지 확실하지 않습니다. 레일즈는 하나의 폼, 하나의 버튼을 꽤 많이 연관시킨다 (그리고 모든 레일 폼은 동일한 자동 생성 된 폼 기능을 사용하는 것처럼 보인다).

드롭 다운 메뉴 또는 저장 또는 계속 여부 결정에 방해가 될 수 있습니다 (레일 만 사용하는 경우).

이제 조건부 버튼을 원한다면 레일을 빌드하기보다는 처음부터 양식 (아약스, 자바 스크립트 등을 사용)을보고 싶을 것입니다. Rails는 당신이 정말로 기본적인 것들을하고 싶을 때 매우 깔끔합니다 ... 그러나 요지는 컨벤션보다 컨벤션입니다. 그래서 당신이 환상을 얻고 싶다면 진짜 고집 스럽습니다.

편집 : 양식에서 호출 할 컨트롤러 동작을 지정할 수 있지만 양식 당 하나의 컨트롤러입니다. 두 가지 다른 가능성을 가지려면 두 가지 형식이 있어야합니다. (찾고있는 것과 같지 않습니다.)

1

JavaScript를 사용하지 않으려는 경우 다음과 같이 할 수 있습니다.

양식 버튼 :

<div class="action"> 
    <%= submit_tag 'Save', :name => 'save_button' %> 
    <%= submit_tag 'Continue', :name => 'submit' %> 
</div> 

참고 각각의 이름은 버튼을 제출합니다. 컨트롤러에서

, 당신은

params[:save_button] 
params[:submit] 

당신은 아마도 경우/ELSIF/else 문에 각 버튼의 작성 방법의 특정 로직을 포함 할 수 있습니다, 예를 들어, 개별적으로 각각의 버튼을 참조 할 수 있습니다.

관련 문제