У меня есть 2 модели «предмет» и «активность». «Предмет» может иметь много «действий» (ограниченное количество действий, используемых всеми предметами).
Чтобы было понятнее: это представлено таблицей с одним элементом на строку, одним действием на столбец и чем-то / ничем на пересечении, если в матрицах таблицы существует линия.
чтобы увидеть изображение (стоит 1000 слов :)): http://tinypic.com/r/33ygtj9/3
Отношения (я думаю) установлены правильно:
item has_many матриц, item has_many действий через матрицы
активность has_many матриц, активность has_many элементов через матрицы
матрица принадлежит элементу, матрица принадлежит деятельности
Некоторая дополнительная / полезная информация:
- матрица графически представлена таблицей с одним элементом на строку, одним действием на столбец и OK / KO на пересечении, если в матрицах таблицы существует линия.
- у меня есть 2 другие модели на картинке: модель курса и модель главы (у курса много глав, у главы много пунктов)
- Все происходит в режиме просмотра «Показать»
До сих пор мне удалось напрямую создать строку (без прохождения формы) в таблице матриц с помощью activity_id и item_id.
Однако я пытаюсь удалить строку, потому что я не понимаю, как получить доступ к значению matrices.id.
Единственный способ, который я нашел, для каждого элемента - циклически просмотреть все доступные действия для этого элемента в хэше (key = activity_id, value = matrices_id).
Если действие недоступно, я отображаю ОК + ссылку для создания строки в матрицах, ОК + ссылку для уничтожения.
Есть ли более простой / более «рельсовый» способ сделать это? то есть избавиться от хеша?
спасибо за вашу помощь.
Pierre