列出日期属性为 before/after 当前日期的文章
Listing Articles with date attribute before/after the current date
我的网站上有一个管理页面,通常会列出用户在我使用@appointments.each 时安排的所有约会。我试图弄清楚如何在当前日期之后列出所有具有日期属性的约会,以及如何列出日期在当前日期之前的所有约会。我查看了一堆 Whosebug 示例,但每当我更改查询时,none 的约会就会再次出现(就像下面的那个)。
这是我的管理页面:
<div align="center">
<div class="col-md-6">
<div class="card">
<h5 class="card-header">All Currently Scheduled Appointments</h5>
<div class="card-body">
<%@appointments.where("date >= ?", Date.current) do | appt |%>
<%="Appointment for #{appt.owner_email} on #{appt.date} in the #{appt.time}"%> <%= link_to 'Edit', edit_appointment_path(appt) %>
</br>
<%end%>
</div>
</div>
</div>
</div>
这是我在架构文件中的约会 table,例如,日期属性将它们存储为“2019-03-21”。
create_table "appointments", force: :cascade do |t|
t.string "VIN"
t.string "owner_email"
t.string "date"
t.string "time"
t.string "reason"
t.string "parts_needed"
t.string "hours_needed"
t.string "cost"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
您的查询后似乎缺少 .each
:
<% @appointments.where("date >= ?", Date.current).each do | appt | %>
<%= "Appointment for #{appt.owner_email} on #{appt.date} in the #{appt.time}"%> <%= link_to 'Edit', edit_appointment_path(appt) %>
</br>
<% end %>
此外,这有点超出您的问题范围,但最好将查询逻辑放在控制器中。所以,在你的控制器动作中你应该做这样的事情:
@appointments = Appointment.where("date >= ?", Date.current)
在您看来,您只是迭代 @appointments
。
我的网站上有一个管理页面,通常会列出用户在我使用@appointments.each 时安排的所有约会。我试图弄清楚如何在当前日期之后列出所有具有日期属性的约会,以及如何列出日期在当前日期之前的所有约会。我查看了一堆 Whosebug 示例,但每当我更改查询时,none 的约会就会再次出现(就像下面的那个)。 这是我的管理页面:
<div align="center">
<div class="col-md-6">
<div class="card">
<h5 class="card-header">All Currently Scheduled Appointments</h5>
<div class="card-body">
<%@appointments.where("date >= ?", Date.current) do | appt |%>
<%="Appointment for #{appt.owner_email} on #{appt.date} in the #{appt.time}"%> <%= link_to 'Edit', edit_appointment_path(appt) %>
</br>
<%end%>
</div>
</div>
</div>
</div>
这是我在架构文件中的约会 table,例如,日期属性将它们存储为“2019-03-21”。
create_table "appointments", force: :cascade do |t|
t.string "VIN"
t.string "owner_email"
t.string "date"
t.string "time"
t.string "reason"
t.string "parts_needed"
t.string "hours_needed"
t.string "cost"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
您的查询后似乎缺少 .each
:
<% @appointments.where("date >= ?", Date.current).each do | appt | %>
<%= "Appointment for #{appt.owner_email} on #{appt.date} in the #{appt.time}"%> <%= link_to 'Edit', edit_appointment_path(appt) %>
</br>
<% end %>
此外,这有点超出您的问题范围,但最好将查询逻辑放在控制器中。所以,在你的控制器动作中你应该做这样的事情:
@appointments = Appointment.where("date >= ?", Date.current)
在您看来,您只是迭代 @appointments
。