gpt4 book ai didi

ruby-on-rails - 如何在现有 "unique"旁边的 Rails 3 和 PostgreSQL 中指定 "unique key"值?

转载 作者:搜寻专家 更新时间:2023-10-30 23:15:52 24 4
gpt4 key购买 nike

我现有的 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=1 的产品数据库中已经有 id=1。

最佳答案

你可以在模型上这样做:

class MyModel < ActiveRecord::Base
validates_uniqueness_of :url
end

或者(根据您的数据库,MySQL 的 react 可能与 PGsql 不同):

# migration file
t.string :url, :null => false, :unique => true

关于ruby-on-rails - 如何在现有 "unique"旁边的 Rails 3 和 PostgreSQL 中指定 "unique key"值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13884327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com