Ваш конкретный пример включает бизнес-правило в том смысле, что если экземпляр модели и куплен, и подтвержден, то соответствующий статус «приобретен», а не «подтвержден»
Итак, в вашем примере я определенно поместил бы метод в модель, поскольку он кодирует одно из бизнес-правил ваших приложений.
Другой пример:
def status_string
case status
when 0: "Purchased"
when 1: "Confirmed"
else
"Pending"
end
end
В этом случае метод status_string может быть разумно определен либо в помощнике вида, либо в модели - он не имеет никакого отношения к каким-либо бизнес-правилам, он изменяет представление значения. Я бы добавил это в модель, так как я склонен помещать только связанные с ht sw в View Helpers. Но в зависимости от вашей схемы интернационализации подобный метод может быть лучше размещен в View Helper.
Хорошим примером помощника по представлению является метод для всего приложения, позволяющий преобразовать значения даты и времени в стандартное представление для вашего приложения. Например,
# application_helper.rb
def date_long_s(d)
d.strftime("%A, %b *%d, %Y *%I:%M %p")
end