2017-05-19 9 views

답변

1

당신은 할 수 있지만 당신은 이것을 위해 js/jquery가 필요합니다. 적절한 방법으로 확인하는 숨겨진 체크 박스와 두 개의 버튼이 있습니다. 양식에 id 'form'이 있다고 가정합니다. 그리고 당신은 체크 박스에 'approve_checkbox'라는 ID가 있습니다. 이 경우에는 submit이 필요합니다.

$('#approve_button').on('click', function(e){ 
    e.preventDefault(); 
    $('#approve_checkbox').prop('checked', true); 
    $('#form').submit(); 
}); 

$('#decline_button').on('click', function(e){ 
    e.preventDefault(); 
    $('#approve_checkbox').prop('checked', false); 
    $('#form').submit(); 
}); 

물론이 코드를 단순화 할 수 있지만 생각은 분명합니다.

2

표준 submit 양식 도우미를 사용하는 경우 "커밋"키가있는 매개 변수가 반환됩니다. 컨트롤러 코드에서이를 테스트 할 수 있습니다. 컨트롤러의

<%= f.submit 'Approve' %> 
<%= f.submit 'Decline' %> 

...

def create 
    approved = params[:commit] == 'Approve' 

approved 변수는 참 또는 거짓 포함하고 액션/방법의 나머지 부분에서 필요에 따라 당신은 그것을 사용할 수 있습니다.

+0

이것은 구현하기가 쉽지만 나쁜 접근 방법입니다. 버튼 텍스트를 사용하기 때문에 ... – nautgrad

+0

버튼의'name' 값을 변경할 수 있지만 도전은 키의 존재를 테스트해야한다는 것을 알게됩니다 ... – SteveTurczyn

+0

그래서'params [: approvet]' 또는 params [: decline]'키를 테스트해라. (params는 표준 해시가 아니기 때문에 키를 테스트 할 때 작은 농구대를 뛰어 넘을 필요가있다.) JS를 사용하여 리턴 값을 설정하는 대안이있다. 'params [: commit]'은 매우 보편적 인 기술이며 구현하기 쉽습니다. 제대로 수행하면 현지화가 지원되므로 단추 범례가 변경되는지 상관없이 설정할 수 있습니다. – SteveTurczyn