【发布时间】:2016-02-03 19:18:11
【问题描述】:
我有这个模型:
ofert.rb
class Ofert < ActiveRecord::Base
belongs_to :user
validates_uniqueness_of :reference, scope: :user_id
end
user.rb
class User < ActiveRecord::Base
has_many :oferts
end
我要验证user_id范围内的属性reference的唯一性,我的意思是,同一用户不能拥有具有相同引用的产品,但如果不是同一用户,则可以重复引用.
如您所见,Ofert 模型中有一个validates_uniqueness_of 语句,然后我添加了这个迁移:
add_index(:oferts, [:reference, :user_id], unique: true)
但是,当我运行迁移时,出现以下错误:
Mysql2::Error: BLOB/TEXT column 'reference' used in key specification without a key length: CREATE UNIQUE INDEX `index_oferts_on_reference_and_user_id` ON `oferts` (`reference`, `user_id`)
这里有什么问题?
【问题讨论】:
标签: mysql ruby-on-rails ruby-on-rails-4 activerecord rails-migrations