Как сделать так, чтобы родительский шаблон включал динамический набор дочерних элементов в Rails - PullRequest
0 голосов
/ 31 марта 2012

У меня есть приложение rails с моделями данных User и Machine, а также несколько тестовых моделей с именами Test1, Test2, Test3 и т. Д.

У пользователей много компьютеров
Машины принадлежат пользователям

Машины имеют много тестов
Тесты принадлежат машинам

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

Например, я хочу, чтобы пользователь мог создавать шаблон «Отчет о моей машине», который включает в себя только тесты 1, 3, 4, 7 и т. Д.показывать только тесты для детей с номерами 1, 3, 4, 7 и т. д.

У кого-нибудь есть предложения по созданию модели данных, которая управляет этим?Я думаю о создании новой модели под названием «Шаблоны», которая будет включать логические значения для каждого доступного теста.Затем я мог бы отобразить правильные поля ввода и результаты на странице «Показать», в зависимости от того, какие значения установлены в True в модели шаблонов.

Это хороший способ достичь моей цели?

1 Ответ

1 голос
/ 01 апреля 2012

Вы работаете с моделью шаблонов, но не хотите, чтобы в таблице шаблонов для каждого теста были разные столбцы. То, что вы описали, - это отношение «многие ко многим» между шаблонами и тестами, которое обрабатывается ассоциацией rails has_many: through . Я думаю, что ваши модели будут выглядеть примерно так:

class Template < ActiveRecord::Base
  belongs_to :user
  belongs_to :machine
  has_many :testing_templates
  has_many :tests, :through => :testing_templates
end

и

class TestingTemplate < ActiveRecord::Base
  belongs_to :template
  belongs_to :test
end

и

class Test < ActiveRecord::Base
  has_many :testing_templates
  has_many :templates, :through => :testing_templates
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...