Вы могли бы вместо этого использовать before_create
обратный вызов, чтобы вы могли поймать жанр немного раньше в рабочем процессе, но в противном случае ваша идея вполне обоснована:
Используйте обратный вызов для запуска проверкижанр, и если он не соответствует тому, что вы ищете, отклоните запись и продолжайте.
Вы также можете использовать обратный вызов :validates
, чтобы проверить, self.genre == 'Fiction'
или что-то ещеВы хотите проверить, и используйте before_validation
, чтобы поймать его еще раньше.
Я рекомендую прочитать страницу RubyGuides на Обратные вызовы Active Record , чтобы понять немного больше о рабочем процессе, а затем принять лучшее решение, когда нужно на самом деле проверить желаемое значение жанра.