0

Railには、このスキーマがあります(carとuser habtmの間の結合テーブル用)

  create_table "cars_users", :id => false, :force => true do |t|
    t.integer "user_id"
    t.integer "car_id"
  end

  add_index "cars_users", ["car_id", "user_id"], :name => "index_cars_users_on_car_id_and_user_id"
  add_index "cars_users", ["user_id", "car_id"], :name => "index_cars_users_on_user_id_and_car_id"

しかし、いくつかのバグのために、このテーブルに重複する行があります。

それを処理するべきではありませんindexか?

4

1 に答える 1

1

試す:

add_index :cars_users, [ :user_id, :car_id ], :unique => true, :name => 'by_user_and_car'

例外が発生しますが、独自の検証を追加できます

class User < ActiveRecord::Base
  has_and_belongs_to_many :cars, :before_add => :validates_car
  def validates_car(car)
    errors.add(:car, "already created" ) if self.cars.include? car
  end
end
于 2013-02-14T07:11:01.403 に答える