Каков наилучший способ защитить определенные записи от изменения или удаления? - PullRequest
0 голосов
/ 31 января 2012

У меня есть три модели: пользователь, подписка и канал.

Пользователь:

has_many :channels, :through => :subscriptions

Подписка:

belongs_to :user
belongs_to :channel

Channel

belongs_to :user
has_many :users, :through => :subscriptions

У меня есть метод after_create, который автоматически добавляет пользователя, создающего канал, в таблицу подписок с некоторыми другими необходимыми атрибутами. Как и где следует добавить предупреждение об удалении или изменении записи подписки, которая соответствует пользователю канала?

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

Рельсы 3.1.3

1 Ответ

0 голосов
/ 31 января 2012

Если вам необходимо предотвратить удаление или изменение записи Subscription, если не выполнены определенные критерии, я бы поставил эти средства защиты в хуках before_destroy и before_save модели Subscription. Если ваши критерии изменения и удаления одинаковы, они оба могут указывать на один и тот же метод; в противном случае вы можете указать before_destroy :validate_destroy_privileges и before_save validate_save_privileges, или что-либо другое, что имеет смысл в том, что вы проверяете.

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