Как переключить логическое значение в одну сторону с помощью button_to
У меня есть 2 кнопки в методе if else, и первая кнопка должна позволить пользователю изменить логическое значение с false на true. Затем, если модель показывает, что это правда, она покажет другую кнопку, которая является кнопкой удаления. Я не могу заставить кнопку тумблера (верхнюю) работать правильно, удаление в порядке. Вот как это сейчас выглядит.
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. Пожалуйста, покажи мне, что мне нужно сделать.
1 ответ
Для этого вам нужно сделать новое действие в users/reportapprovals
контроллер, который будет устанавливать reportapproval.user_approved
в true
когда пользователь нажимает на первую кнопку. В первую кнопку в атрибуте действия добавьте созданное новое действие. Также позаботьтесь о том, чтобы упомянуть то же действие в маршрутах. Чтобы не упоминать контроллер и действие, вы также можете указать путь к новому созданному маршруту. Так что это то, что вам нужно сделать. Это можно сделать с помощью AJAX или просто путем перезагрузки страницы.