Пытаясь убедиться, что я моделирую чисто - PullRequest
0 голосов
/ 01 марта 2011

Я попытаюсь объяснить это по-другому, так что это имеет больше смысла. В моей системе есть курсы, которые состоят из шагов. Есть много типов шагов: видео, викторина, текст, опрос ... и т. Д. Каждый из этих шагов разделяет общие данные, такие как заголовок, сводка, клиент и позиция. Но каждый шаг имеет совершенно другую модель для своих данных. В шаге викторины есть много разных таблиц и полей, где шаг Текст, на самом деле, имеет только одно дополнительное поле. Поэтому я не думаю, что наследование одной таблицы работает.

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

Поскольку у меня разные контроллеры для каждого типа шага, я не хочу делать что-то подобное в моем контроллере:

if @step.type=="Quiz"
   edit_step_quiz_path(@step.getSpecificStepObject())
elsif @step.type == "Text"
   edit_step_text_path(@step.getSpecificStepObject())
elsif @step.type=="Video"
   edit_step_video_path(@step.getSpecificStepObject())
end

Должен ли я вместо этого иметь метод редактирования моего основного "шагового" контроллера, выполнить логику и перенаправить в соответствующее место для редактирования, чтобы мой взгляд был чистым?

Ответы [ 2 ]

2 голосов
/ 01 марта 2011

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

def edit_step_path(step)
  send("edit_step_#{step.type.downcase}_path".to_sym, step.getSpecificStepObject)
end

Тогда вы можете просто вызвать edit_step_path(@step)

1 голос
/ 01 марта 2011

Привет, Крис, я думаю, ты на неправильном пути.Посмотрите на эту заставку Райана Бейтса.Я не совсем уверен, правильно ли вы разработали модели.

http://railscasts.com/episodes/217-multistep-forms

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