2017-10-08 7 views
1

ActiveAdminとRuby on Railsを初めて使用しています。私はリソース名予約を持っています。だから私は、次のコードボタンをクリックした後にActiveAdminでデータベースを更新する

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

を使用してボタンを作成したreservations.rbファイルには、今、このボタンをクリックした後、私はちょうどその予約のためにデータベースに「拒否」するreservation.statusの値を変更したいです。

次のコードを追加しました。しかし、それはデータベースの値を変更しません。

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

[action item](https://activeadmin.info/8-custom-actions.html#action-items) –

+0

を使用してください。私の予約の値を変更するにはどうすればいいですか?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 

私はドキュメントがより良いかもしれないとデモがたとえば、のPRの歓迎を含んでいない認めます。 aの代わりにlink_toが問題ありません。メソッドとしてpatchを指定するほうが正確ですが、厳密には必要ありません。

関連する問題