【问题标题】:Listing Articles with date attribute before/after the current date在当前日期之前/之后列出具有日期属性的文章
【发布时间】:2019-08-12 20:08:06
【问题描述】:

我的网站上有一个管理页面,通常会列出用户在我使用@appointments.each 时安排的所有约会。我试图弄清楚如何在当前日期之后列出所有具有日期属性的约会,以及如何列出所有日期在当前日期之前的约会。我查看了一堆 stackoverflow 示例,但是每当我更改查询时,都不会再显示任何约会(就像下面的那个)。 这是我的管理页面:

<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>

这是我在架构文件中的约会表,例如日期属性将它们存储为“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

【问题讨论】:

    标签: html ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2


    【解决方案1】:

    您的查询后似乎缺少.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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多