У меня есть форма, которая имеет много контактов.Я хочу иметь возможность удалять контакты, не удаляя их, а отмечая их как удаленные.Я добавил атрибут «удален» в свою таблицу контактов.
В большинстве случаев мне нужны контакты из форм. Мне нужны только те, которые не были удалены:
form.contacts.find_all_by_deleted(false)
Это кажется грязным, поэтому я думал о named_scope или default_scope, но многолюди, кажется, говорят, что они злые.
Я также думал о том, чтобы просто изменить отношения в форме (Это то же самое, что и область по умолчанию? Это зло?):
has_many :contacts, :conditions => ["deleted = false"]
В моем представлении администратора мне нужно видеть все контакты.Я думаю, что я могу просто найти со стороны «Контакты» добавление идентификатора формы.
Похоже, что это то, что люди могут реализовать много, и должно быть хорошо согласовано с лучшей практикой.
Любое решение должно работать в Rails 2 и не быть устаревшим для Rails 3. Не использовать плагин или гем.