Rails, запрашивающий объекты времени, а не возвращающие объекты, относящиеся к дате - PullRequest
0 голосов
/ 19 мая 2018

Хорошо, у меня возникли проблемы с запросом моего рабочего стола.Я пытаюсь заполнить календарь вакансиями, соответствующими их датам.В моем фрагменте я использую самоцвет.С моей текущей логикой (строка 28 в консоли) я стремлюсь найти в моей таблице вакансий, где она будет возвращать все вакансии в тот же день.Прямо сейчас, когда я отображаю календарь , как и каждая дата, заполняется всеми 5 объектами Job.Когда я смотрю на то, что вы видите в консоли, я получаю первые 3. Первые три имеют одинаковую дату create_at, но я не знаю, почему она возвращает их, когда я запрашиваю только один в случае консоли.

К вашему сведению: @calender_days - это массив, заполненный форматом объектов времени ex "2018-05-16 08:30:00 -0400"

Дайте мне знать, если вам, ребята, нужна дополнительная информация, и заранее спасибоза вашу помощь.

РЕДАКТИРОВАТЬ: уточнить.Я не понимаю, почему я получаю 3 объекта с датами 16-го, 22-го и 16-го, когда я ищу с объектом Time, где датой является 16-е.

    21:         <% 5.times do %>
    22:           <tr>
    23:             <% 7.times do %>
    24:               <td>
    25:                 <% date = @calender_days[count] %>
 => 26:                 <% binding.pry %>
    27:                 <u><%= date.strftime('%d') %></u><br />
    28:                 <% @jobs.where(:datetime == date.day).each do |job| %>
    29:                   <%= job.name %><br />
    30:                 <% end %>
    31:                 <% count += 1 %>
[1] pry(#<#<Class:0x6fc59a0>>)> @jobs.where(:datetime == Time.new("2018-05-16 08:30:00 -0400"))
  Job Load (0.0ms)  SELECT "jobs".* FROM "jobs"
=> [#<Job:0x74f20b0
  id: 1,
  name: "Sweep Floor",
  datetime: Wed, 16 May 2018 08:30:00 EDT -04:00,
  created_by: 1,
  client_id: 9,
  notes: "Get under couch",
  workers: "3",
  created_at: Thu, 17 May 2018 09:52:49 EDT -04:00,
  updated_at: Thu, 17 May 2018 09:52:49 EDT -04:00>,
 #<Job:0x74f1fd8
  id: 2,
  name: "Wash Windows",
  datetime: Tue, 22 May 2018 11:30:00 EDT -04:00,
  created_by: 2,
  client_id: 10,
  notes: "Remove all spots",
  workers: "4",
  created_at: Thu, 17 May 2018 09:52:49 EDT -04:00,
  updated_at: Thu, 17 May 2018 09:52:49 EDT -04:00>,
 #<Job:0x74f1ee8
  id: 3,
  name: "Clean Kitchen",
  datetime: Wed, 16 May 2018 12:00:00 EDT -04:00,
  created_by: 1,
  client_id: 11,
  notes: "Wipe down cabinets",

Вот все мои объекты Job.

[0] #<Job:0x65ef2a8> {
            :id => 1,
          :name => "Sweep Floor",
      :datetime => Wed, 16 May 2018 08:30:00 EDT -04:00,
    :created_by => 1,
     :client_id => 9,
         :notes => "Get under couch",
       :workers => "3",
    :created_at => Thu, 17 May 2018 09:52:49 EDT -04:00,
    :updated_at => Thu, 17 May 2018 09:52:49 EDT -04:00
},
[1] #<Job:0x65ec638> {
            :id => 2,
          :name => "Wash Windows",
      :datetime => Tue, 22 May 2018 11:30:00 EDT -04:00,
    :created_by => 2,
     :client_id => 10,
         :notes => "Remove all spots",
       :workers => "4",
    :created_at => Thu, 17 May 2018 09:52:49 EDT -04:00,
    :updated_at => Thu, 17 May 2018 09:52:49 EDT -04:00
},
[2] #<Job:0x65ec578> {
            :id => 3,
          :name => "Clean Kitchen",
      :datetime => Wed, 16 May 2018 12:00:00 EDT -04:00,
    :created_by => 1,
     :client_id => 11,
         :notes => "Wipe down cabinets",
       :workers => "7",
    :created_at => Thu, 17 May 2018 09:52:50 EDT -04:00,
    :updated_at => Thu, 17 May 2018 09:52:50 EDT -04:00
},
[3] #<Job:0x65ec4b8> {
            :id => 4,
          :name => "Dusting",
      :datetime => Wed, 16 May 2018 02:30:00 EDT -04:00,
    :created_by => 1,
     :client_id => 10,
         :notes => "Get the fans.",
       :workers => "8",
    :created_at => Sat, 19 May 2018 08:49:11 EDT -04:00,
    :updated_at => Sat, 19 May 2018 08:49:11 EDT -04:00
},
[4] #<Job:0x65ec3f8> {
            :id => 5,
          :name => "Dusting",
      :datetime => Thu, 03 May 2018 08:30:00 EDT -04:00,
    :created_by => 1,
     :client_id => 11,
         :notes => "TV Stand.",
       :workers => "4",
    :created_at => Sat, 19 May 2018 08:50:33 EDT -04:00,
    :updated_at => Sat, 19 May 2018 08:50:33 EDT -04:00
}

1 Ответ

0 голосов
/ 19 мая 2018

Я предполагаю, что Jobs.datetime тип столбца datetime, но вы пытаетесь перечислить элементы по дате, а не по дате / времени.Я думаю, что следующий запрос должен работать:

@jobs.where('DATE(datetime) = ?', Date.parse('Wed, 16 May 2018'))

часть DATE(...) преобразует datetime в date.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...