gpt4 book ai didi

ruby-on-rails - Rails 时间选择只显示小时?

转载 作者:行者123 更新时间:2023-12-04 21:12:47 27 4
gpt4 key购买 nike

如何让 Rails 时间选择只显示小时部分而不显示分钟?基本上我想要的是显示时间过滤器 start_timeend_time并使用 Ransack gem 来过滤查询。

# db
create_table "schedules"
t.time "start_time"
t.time "end_time"

# controller
@q = Schedule.ransack(params[:q])
@q.sorts = ['date asc', 'start_time asc', 'end_time asc'] if @q.sorts.empty?
@schedules = @q.result.includes(:klass, :partner, :city)

#view
<%= search_form_for @q do |f| %>
<%= f.label :start_time_gteq, "Start time" %>
<%= f.select_hour :start_time_gteq, start_hour: 5, end_hour: 23 %>

<%= f.submit "Filter" %>
<% end %>

但它给了我这个错误:
undefined method `select_hour' for #<Ransack::Helpers::FormBuilder:0x007fb85217e000>

我也试过:
<%= f.time_select :start_time_eq, start_hour: 5, end_hour: 23 %>

...但它显示了分钟部分。我查了 API但是没有办法只显示 time_select 的小时数.

编辑:

显然有一种方法可以删除分钟部分:
<%= f.time_select :start_time_gteq, discard_minute: true %>

不幸的是,它还会生成默认为系统当前分钟的隐藏输入标签,这使得过滤无用。

最佳答案

也许是时候生成您自己的自定义选择而不是尝试强制安装 Rails 助手了……也许是这样的:

<%= f.label "start_hour_eq", "Start time" %>
<%= f.select "start_hour_eq", (5..23).to_a %>:00

根据 Ransack 期望的输入,您可能需要调整名称和/或包含分钟的隐藏字段:
= hidden_field_tag "start_minute_eq", 0

关于ruby-on-rails - Rails 时间选择只显示小时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31008666/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com