Rails: создание таблицы на основе данных, содержащих даты

Я работаю над приложением в RoR, чтобы отслеживать сервисные услуги, выполняемые на разных машинах.

Чтобы попытаться немного упростить, скажем, у нас есть две модели, с одной стороны машины и с другой службы, так что сервис belongs_to машина и машина has_many службы. Эти услуги определяются на основе даты, когда они должны быть выполнены, машины, на которой они выполняются, и состояния (должно быть выполнено, не в порядке и т. Д.). Моя идея состоит в том, чтобы в качестве основного экрана показать сводку услуг, которые должны быть выполнены, например таблицу этого типа, где в заголовке таблицы указаны месяцы, а в каждой «ячейке» указан день месяца, в котором данный Обслуживание должно быть выполнено для конкретной машины. Это будет что-то вроде этого:

ejemplo tabla

Машина A имеет обслуживание, запланированное на 25 января, B на 3 марта и т. Д. , Любая идея, как я могу сделать это правильно?

Спасибо.

0
задан 19.09.2016, 17:35
3 ответа

Как я понимаю, в твоей базе данных ты считаешь что-то следующим:

Table Name: Services
machine | date_service(type date)
   A    |   23/01/2017
   B    |   03/03/2017
   C    |   25/02/2017
   B    |   14/07/2017

В драйвере у тебя должен бы быть метод такое шоу:

def show
  @services_a = Service.where(:machine => "A").reorder(:date_service)
  @services_b = Service.where(:machine => "B").reorder(:date_service)
  @services_c = Service.where(:machine => "C").reorder(:date_service)
  ...
end

и в виде:

<h1>Listing Services</h1>

<table>
  <tr>
    <th>Maquina</th>
    <th>Enero</th>
    <th>Febrero</th>
    <th>Marzo</th>
    <th>Abril</th>
    ...
  </tr>

#Un из-за каждой машины, что у тебя есть

<% @services_a.each do |service| %>
    <% if service.date_service.strftime("%m") == "01" %>
      <tr><td><%= service.date_service %></td>
    <% else %>
      <tr><td>&nbsp;</td>
    <% end %>
    <% if service.date_service.strftime("%m") == "02" %>
      <td><%= service.date_service %></td>
    <% else %>
      <td>&nbsp;</td>
    <% end %>
    <% if service.date_service.strftime("%m") == "03" %>
      <td><%= service.date_service %></td>
    <% else %>
      <td>&nbsp;</td>
    <% end %>
    <% if service.date_service.strftime("%m") == "04" %>
      <td><%= service.date_service %></td>
    <% else %>
      <td>&nbsp;</td>
    <% end %>
    ...
    <% if service.date_service.strftime("%m") == "04" %>
      <td><%= service.date_service %></td></tr>
    <% else %>
      <td>&nbsp;</td></tr>
    <% end %>
<% end %>

<% @services_b.each do |service| %>
    <% if service.date_service.strftime("%m") == "01" %>
      <tr><td><%= service.date_service %></td>
    <% else %>
      <tr><td>&nbsp;</td>
    <% end %>
    <% if service.date_service.strftime("%m") == "02" %>
      <td><%= service.date_service %></td>
    <% else %>
      <td>&nbsp;</td>
    <% end %>
    <% if service.date_service.strftime("%m") == "03" %>
      <td><%= service.date_service %></td>
    <% else %>
      <td>&nbsp;</td>
    <% end %>
    <% if service.date_service.strftime("%m") == "04" %>
      <td><%= service.date_service %></td>
    <% else %>
      <td>&nbsp;</td>
    <% end %>
    ...
    <% if service.date_service.strftime("%m") == "04" %>
      <td><%= service.date_service %></td></tr>
    <% else %>
      <td>&nbsp;</td></tr>
    <% end %>
<% end %>

</table>

, Хотя в код ему не хватает opotimizacion, мне кажется цикл этих, что оно функционирует, и если он не удается, так как это идея.

Надеялся, что он на самом деле подает тебя.

0
ответ дан 24.11.2019, 13:21

Я не понимаю хорошо твой вопрос, который ты хочешь сказать с правильно? Если интерфейс пользователя, которого ты предлагаешь, хорошо?, Если necestias он помогает с как, делать это в RoR?...

Интерфейс пользователя именно будет зависеть твой пользователь... состоит из-за этого в том, что ты должен спрашивать пользователей.

0
ответ дан 24.11.2019, 13:21
  • 1
    Прощение из-за того, что не má s ясный, что я хочу, состоит в том, чтобы получать помощь относительно как делать точно то, что я объясняю в начальном post, с RoR или с какой-то tecnologí в front-end тип jQuery (если он может делаться только с лучшим RoR/HTML), производить таблицу на основании дат, в которой услуги должны быть реализованными, как я показываю. –  Ernesto G 18.09.2016, 20:12

Я harГ - в один mГ©todo в классе Замысли, что ввиду одного месяца он сказал которые услуги, они на этот месяц....

class Maquina
    def servicios_por_mes(mes, anho)

        proximo_mes = (mes == 12) ? 1 : mes+1
        proximo_anho = (mes == 12) ? anho+1 : anho

        Servicios.where(maquina_id: maquina_id)
            .where(["fecha_servicio >= ?", "#{anho}-#{mes}-01"])
            .where(["fecha_servicio < ?", "#{proximo_anho}-#{proximo_mes}-01"])
            .count
    end
end

Потом это использовал в виде.... и себе делают два цикла один из-за машины и внутри один в месяц.....

0
ответ дан 24.11.2019, 13:21