Я пытаюсь отфильтровать страницу индекса списка задач, у меня есть столбец t.datetime "completed_at"
в моей таблице задач.
В настоящее время моя форма выглядит так:
<%= form_with model: @task, method: :GET do |f| %>
<%= f.label "Complete" %>
<%= f.radio_button :completed, "complete" %>
<%= f.label "Incompleted" %>
<%= f.radio_button :completed, "incomplete" %>
<%= f.label "All tasks" %>
<%= f.radio_button :completed, "all_tasks" %>
<%= f.submit "Filter" %>
<% end %>
и мой контроллер
def index
if params[:completed] == "complete"
@tasks = Task.where(completed_at: !nil)
elsif params[:completed] == "incomplete"
@tasks = Task.where(completed_at: nil)
else
@tasks = Task.all
end
end
Я пытаюсь использовать completed_at
, равное nil, как незавершенную задачу, а завершенные задачи будут !nil
, так как дата и время будут сохранены при проверке как завершенная. Если бы кто-нибудь мог указать мне в правильном направлении или привести пример того, как заставить это работать, я был бы признателен. Спасибо.
рельсы - 6 ruby - 2,7