我目前正在学习如何使用Ruby on Rails与The Odin Project,现在我正在处理制作表单。我试图从我的数据库中提取独特的日期以填充项目的下拉选项框。我在我看来使用form_for
,我使用select
函数,它接受一个数组数组,即[[“option one”,1],[“option two”,2]]等等。这个想法是只有唯一的日期数据库中的数据应显示在选项中。我的问题是重复的日期不断显示,例如选择不同的日期时间
03/03/2016
03/03/2016
04/03/2016
05/03/2016
06/03/2016
06/03/2016
使用的find_by_sql我试图
SELECT DISTINCT start FROM flights
无济于事。我尝试了一个快速的谷歌搜索
SELECT start FROM flights GROUP BY start
但我仍然得到重复。我不是最好的SQL,所以任何帮助,将不胜感激。
编辑:
我DATATIME柱确实有一个时间组件,因此这可能是问题
从DB模式这里是我的航班表,如果它的任何帮助
create_table "flights", force: :cascade do |t|
t.integer "from_airport_id"
t.integer "to_airport_id"
t.datetime "start"
t.integer "flight_duration"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
(1)“start”的数据类型是什么? (2)你使用了什么数据库?最可能的问题是'start'有一个时间组件,你只需要提取日期(或格式化结果,以便看到时间组件)。 –
你的意思是'SELECT DISTINCT'返回重复的行吗?很奇怪。这是整个选择?!? – jarlh
@gordonlinoff在Rails中,它只是说日期时间,但它包含一个时间组件。这可能是问题所在,我会尝试格式化以获得时间部分,但我不知道如何去做。我会检查谷歌! – SkipCloud