와 함께 제출 버튼을 사용자는 Decline
을 클릭해야합니다. approve: false
도 보내야합니다., 나는이라는 버튼을 제출해야 할 하나 개의 형태에 대한 옵션
기본적으로 버튼은 다음과 같이 작동해야합니다. 체크 박스
레일즈와 이것을 구현할 수 있습니까? 감사합니다
와 함께 제출 버튼을 사용자는 Decline
을 클릭해야합니다. approve: false
도 보내야합니다., 나는이라는 버튼을 제출해야 할 하나 개의 형태에 대한 옵션
기본적으로 버튼은 다음과 같이 작동해야합니다. 체크 박스
레일즈와 이것을 구현할 수 있습니까? 감사합니다
당신은 할 수 있지만 당신은 이것을 위해 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();
});
물론이 코드를 단순화 할 수 있지만 생각은 분명합니다.
표준 submit
양식 도우미를 사용하는 경우 "커밋"키가있는 매개 변수가 반환됩니다. 컨트롤러 코드에서이를 테스트 할 수 있습니다. 컨트롤러의
<%= f.submit 'Approve' %>
<%= f.submit 'Decline' %>
...
def create
approved = params[:commit] == 'Approve'
approved
변수는 참 또는 거짓 포함하고 액션/방법의 나머지 부분에서 필요에 따라 당신은 그것을 사용할 수 있습니다.
이것은 구현하기가 쉽지만 나쁜 접근 방법입니다. 버튼 텍스트를 사용하기 때문에 ... – nautgrad
버튼의'name' 값을 변경할 수 있지만 도전은 키의 존재를 테스트해야한다는 것을 알게됩니다 ... – SteveTurczyn
그래서'params [: approvet]' 또는 params [: decline]'키를 테스트해라. (params는 표준 해시가 아니기 때문에 키를 테스트 할 때 작은 농구대를 뛰어 넘을 필요가있다.) JS를 사용하여 리턴 값을 설정하는 대안이있다. 'params [: commit]'은 매우 보편적 인 기술이며 구현하기 쉽습니다. 제대로 수행하면 현지화가 지원되므로 단추 범례가 변경되는지 상관없이 설정할 수 있습니다. – SteveTurczyn