Плюс настрой gii и через генератор моделек, посмотри как будут сгенерированы твои модели, в особенности релейшены у модели связанной с табликец genre-book
И плюс ко всему выше написаному, ты когда сейвишь модель $form она перед сейвом проводит валидацию, и если не валидируется, то заполняется переменная errors модели и отправляя в форму модель она сама по местам ошибки валидации расставит, а у тебя $form никуда не передается с ошибками валидации.