Как люди организуют сложные методы? Я имею в виду, где программисты обычно ставят методы, которые действительно не принадлежат какой-либо конкретной модели, но вместо этого используют 3-4 модели и 2-3 области для принятия некоторых сложных решений?Сделать сложную логику проще
Например, сердце приложения я работаю прямо сейчас следующий сценарий:
@items_to_post = Item.where(calendar_id: Ad.ready_to_post.collect(&:calendar_id).uniq).not_posted_yet(ad)
if @items_to_post.renewable.count > 0
@output = "Please Renew First"
else
@first_item = @items_to_post.first
@post = Post.new(title: @first_item.randomizations.first.title, body: @first_item.description, ...)
...
end
Я просто не хочу утомлять вас весь код - это очень долго, и должно быть вызывается в двух местах с небольшими различиями.
Я поместил все это в свой ExportController, который является уродливым, особенно для Controller, потому что он нарушает соглашение MVC, но я понятия не имею, что с ним делать.
Где вы, ребята, обычно ставите такие методы?
После прочтения вашего ответа пару раз - я, наконец, понял, «кто должен делать эту работу». Благодарю. –
Рад, если это имеет смысл. Как примечание к MVC - лично, когда я вижу классы под названием «______Controller», я испугался, потому что люди часто вставляли слишком много кода и логики в «Контроллеры». –
Да, мне тоже это не нравится. Контроллер просто отвечает на запросы. Вот почему я спросил, как его переместить. –