2017-10-08 4 views
1

ActiveAdmin과 Ruby on Rails를 처음 사용했습니다. 리소스 이름 예약이 있습니다. 그래서 reservations.rb 파일 난 그냥 예약에 대한 데이터베이스에 "거부"로 reservation.status의 값을 변경하려면이 버튼을 클릭 한 후버튼을 클릭 한 후 ActiveAdmin에서 데이터베이스 업데이트하기

div class: "button" do 
button_to "Decline", :class => "btn" 
end 

이제 다음 코드를 사용하여 버튼을 만들었습니다.

다음 코드를 추가했습니다. 그러나 데이터베이스의 가치는 변하지 않습니다.

action_item :approved, only: :show do 
    link_to 'Approved', '#' 
    reservation.status="Approved" 
end 
+0

[작업 항목] 사용 (https://activeadmin.info/8-custom-actions.html#action-items) –

+0

작업 항목을 사용하여 my reservation.status = "Approved"값을 어떻게 변경합니까? . 다음 블록을 추가했지만 데이터베이스의 값을 변경하지 않습니다. action_item : 승인 됨, : show do link_to 'Approved', '#' reservation.status = "Approved" end –

답변

0

조치 항목과 쌍을 이루는 회원 행동을 사용하십시오. 액션 항목은 버튼을 표시하고 회원의 행동 때문에, 작업을 수행

action_item :approve, only: :show do 
    a 'Approve', href: approve_reservation_path(reservation) 
end 

member_action :approve do 
    reservation.update_attributes!(status: 'Approved') 
end 

내가 문서가 더 좋을 수 인정 및 데모 예를 들어, 푸에르 토리코 환영 포함되지 않습니다. a 대신 link_to이 좋습니다. 메서드로 patch을 지정하는 것이 더 정확할 수 있지만 반드시 필요한 것은 아닙니다.