我现有的 Rails 应用程序是用 Rails 3.2 编写的,并使用 PostgreSQL 作为数据库引擎。我们的产品表包含来自多个网站的产品。目前,每个产品在进入时都会获得一个唯一的 ID。
这是模型:
class Platform < ActiveRecord::Base
attr_accessible :name, :url, :country, :email
validates :name, :presence => true,
:length => { :minimum => 1 }
has_many :sectors
end
和来自 schema.rb 的该表的数据库模式
create_table "platforms", :force => true do |t|
t.string "name"
t.string "url"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "country"
t.string "email"
end
是否可以使用“URL”参数添加另一个禁止进入或新产品的“唯一键”?我不确定在Rails g migration
不破坏现有记录的情况下实现这样的事情(如果已经存在重复)。
所以基本上:如果新产品的 url 对应于数据库中已有的 url,我希望 rails 禁止添加新产品,类似于如果有 id= 的产品,我不允许输入 id=1 的产品1 已经在数据库中了。