Есть ли подходящее место для вспомогательных методов для моделей в Rails? Существуют вспомогательные методы для контроллеров и представлений, но я не уверен, где лучше всего разместить методы вспомогательной модели. Помимо добавления метода к ActiveRecord::Base
, который я бы предпочел не делать.Вспомогательные методы для моделей в Rails
UPDATE: Кажется Обеспокоенность делает много смысла. Вот пример того, что я хочу. Некоторые модели не могут быть удалены, так что я добавить функцию обратного вызова, которая всегда вызывает исключение:
before_destroy :nope
def nope
raise 'Deleting not allowed'
end
с проблемами, я мог бы сделать что-то вроде этого?
class MyModel < ActiveRecord::Base
include Undeletable
end
module Undeletable
extend ActiveSupport::Concern
included do
before_destroy :nope
end
def nope
raise 'Deleting not allowed'
end
end
Является ли это способом Rails этого?
Почему вы не используете простой старый модуль Ruby и не смешиваете его со всеми классами, которые вы хотите? –
Что означает «помощник для модели»? Может быть, вы ищете декоратора? –
Это поможет, если вы приведете пример, который я думаю, тогда люди могли бы посоветовать на конвенции: есть много способов сделать что-либо, но в целом придерживаться конвенции - хорошая идея. –