2015-02-06 4 views
0

두 개의 버튼이 if else 메소드에 있고 첫 번째 버튼이 사용자가 부울을 false에서 true로 변경할 수 있다고 가정합니다. 그런 다음 모델이 사실이라고 표시하면 삭제 버튼 인 다른 버튼이 표시됩니다. 나는 토글 버튼 (맨 위)을 제대로 작동하도록 삭제할 수 없다. 삭제는 괜찮다. 여기 그것이 지금의 입장입니다.button_to를 사용하여 부울을 전환하는 방법

def which_button(reportapproval) 
    if reportapproval.user_approved == false 
     button_to "Approve this Manager?", { controller: "users/reportapprovals", id: @reportapproval.id, action: "#not sure what goes here" }, method: :#not sure what goes here, data: {confirm: "Are you sure you want to give this manager access to your report?" } 
    else 
     button_to "Remove this Manager", { controller: "users/reportapprovals", id: @reportapproval.id, action: "destroy" }, method: :delete, data: {confirm: "Are you sure you want to remove this manager's access to your report?" } 
    end 
    end 

하지만 오류가 계속 발생합니다. 경로를 찾을 수 없습니다. 내가 아는 바가 없습니다. reportapproval 모델에서 부울을 토글하고 싶습니다. 내가해야 할 일을 보여줘.

+0

'reportapproval.user_approved'를 true로 설정 한 컨트롤러의 첫 번째 버튼을 사용해야합니다. – Deep

+0

그래서 컨트롤러에서 고유 한 동작을 만들어야합니까? 나는 그것을했지만 행동을 부르는 법을 확실히 알지 못했다. 이 단추의 동작 또는 메서드 영역에서이 단추 중 다른 단추로 이동하는 부분이 무엇인지를 호출합니다. – SupremeA

+0

두 번째 액션에서와 마찬가지로 액션에서 호출합니다. 그것은 destroy라는 액션을 호출합니다. – Deep

답변

1

이 경우 사용자가 첫 번째 버튼을 클릭 할 때 reportapproval.user_approved에서 true으로 설정할 users/reportapprovals 컨트롤러에서 새로운 작업을 수행해야합니다. action 속성의 첫 번째 버튼에서 생성 된 새 액션을 추가합니다. 또한 경로에서 동일한 조치를 언급하도록주의하십시오. 컨트롤러와 동작을 언급하지 않으려면 생성 된 새 경로의 경로를 지정할 수도 있습니다. 그래서 이것이 당신이해야 할 일입니다. 이 작업은 AJAX를 사용하거나 페이지를 다시로드하는 것만으로도 가능합니다.

관련 문제