1
j'ai écrit la migration suivante:validate_uniqueness_of et index sur MySQL
class AddValidationsToAnimals < ActiveRecord::Migration
def change
add_index :animals, [:name, :user_id], :unique => true
end
end
Ok. Puis, dans mon modèle, j'ajoute la validation suivante:
validates_uniqueness_of :name, :scope => :user_id
Lorsque je tente d'ajouter un registre qui nuira à cette règle, à moins obtenir un joli message dans mon avis, je me suis un RecordNotUnique
Exception.
Pourquoi? Comment puis-je résoudre ce problème?
Merci d'avance.
def create
@animal = current_user.animals.new(params[:animal])
@animal.valid?
respond_to do |format|
if @animal.save
format.html { redirect_to @animal, notice: 'Animal registrado com sucesso.' }
format.json { render json: @animal, status: :created, location: @animal }
else
format.html { render action: "new" }
format.json { render json: @animal.errors, status: :unprocessable_entity }
end
end
end
J'ai ajouté la méthode save dans la question. Après avoir ajouté un @ animal.valid? avant de sauvegarder, ça marche. La question qui reste est pourquoi les rails ne le valide pas? – caarlos0