如何在特定记录范围内使用is_unique表单验证?

I have a table called participants:

CREATE TABLE IF NOT EXISTS `participants` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `email` varchar(30) NOT NULL,
  `name` varchar(40) NOT NULL,
  `birthdate` date NOT NULL,
  `personal_number` varchar(16) DEFAULT NULL,
  `phone` varchar(16) NOT NULL,
  `photo` varchar(100) NOT NULL,
  `address` text NOT NULL,
  `city_id` int(3) DEFAULT NULL,
  `tournament_id` int(8) NOT NULL,
  `time_created` datetime NOT NULL,
  `time_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `city_id` (`city_id`),
  KEY `tournament_id` (`tournament_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

The rule for creating participants is each registered email address can only participate in one tournament (foreign key tournament_id); therefore two records with the same email address but different tournament_id should be allowed.

Is is_unique form validation able to do this operation? Or should I create a callback or a helper?

is_unique is just a short name for value_does_not_already_exists_in_a_single_column.

So, no - it won't do the job; you'll need a callback.