我写了以下迁移:
class AddValidationsToAnimals < ActiveRecord::Migration
def change
add_index :animals, [:name, :user_id], :unique => true
end
end
确定。然后,在我的模型中,我添加以下验证:
validates_uniqueness_of :name, :scope => :user_id
当我尝试添加一个会损害此规则的注册表时,除非在我的视图中收到一条漂亮的消息,否则我会收到RecordNotUnique
异常。
为什么呢?我该如何解决这个问题?
提前致谢。
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
答案 0 :(得分:1)
请在此处粘贴您的方法代码。这是常见的object.save
吗?尝试之前致电object.valid?
并检查它是否正在返回false
。