Таблица в ERB с названиями дней недели

Я очень новичок в Ruby/Rails, и я просто пытаюсь найти самый элегантный способ сделать таблицу в ERB, где столбцы - это день недели, а строки - каждая запись для данной модели. Сама концепция проста, и я, вероятно, могу сделать это с помощью кучи ручного кода, но я хотел бы использовать как можно больше магии rails/erb. Чтобы быть более конкретным, вот что я определил.

  • Модель, в которой перечислены все пользователи
  • Модель, которая перечисляет один статус для каждого пользователя на определенную дату (каждый пользователь может иметь только один статус на определенную дату: скажем, «включено» или «выключено»).

Мне нужно представление, в котором перечислены все пользователи в таблице с их статусом за эту неделю. Например:

       Mon | Tue | ... | Fri
User1   on | off | ... |
User2  off |     | ... |

Несколько замечаний: - (как я уже упоминал) У пользователя может быть только один статус в день - У пользователя может не быть никакого статуса на данный день - Нет столбцов для субботы/воскресенья - В таблице всегда будет отображаться полный текущий неделе, даже если день приходится на вторник (т. е. в этом случае записи среды .. пт будут просто пустыми).

Теперь, опять же, я уверен, что могу написать кучу кода erb, чтобы сделать все это вручную, но надеялся использовать немного магии рельсов. Любые указатели или помощь будут очень признательны.


person anamaniac    schedule 02.11.2011    source источник


Ответы (1)


Вы всегда можете сделать что-то вроде:

@monday = Date.today.at_beginning_of_week
7.times do |x|
  @days << x.days.since(@monday)
end

Затем прокрутите @days в своем представлении.

Вы можете напечатать дату или просто день в строках таблицы часов. Полезно тем, что вы также можете посмотреть статус своих пользователей, используя эту дату.

person Craig    schedule 05.10.2012