首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >has_and_belongs_to_many关联的Uniquness验证

has_and_belongs_to_many关联的Uniquness验证
EN

Stack Overflow用户
提问于 2019-01-24 01:09:22
回答 1查看 30关注 0票数 0

我有一个模型AnimalTypehas_and_belongs_to_many :trainers, join_table: 'trainers_animal_types'和我需要一个验证规则,这样我就可以创建一个只有现有动物类型的训练器,以避免有一个训练器来复制动物类型。例如,培训师可以使用动物类型['Cat', 'Dog'],而不是['Cat', 'Cat', 'Dog', 'Dog']

代码语言:javascript
运行
AI代码解释
复制
class AnimalType < ApplicationRecord
  has_and_belongs_to_many :trainers, join_table: 'trainers_animal_types'
end

AnimalType在DB中只有一个名称。

代码语言:javascript
运行
AI代码解释
复制
create_table "animal_types", force: :cascade do |t|
  t.string   "name"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
end

连接表

代码语言:javascript
运行
AI代码解释
复制
create_table "trainers_animal_types", id: false, force: :cascade do |t|
  t.integer "trainer_id"
  t.integer "animal_type_id"
end

是否有一种方法来验证has_and_belongs_to_many关联中名称的唯一性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-24 01:22:04

因此,您需要name表中的animal_types字段的唯一性,对吗?如果是,那么

您可以在表中添加唯一索引,如

rails generate migration add_index_to_animal_types

代码语言:javascript
运行
AI代码解释
复制
# migration file
add_index :animal_types, :name, :unique => true

然后在animal.rb

validates :name, uniqueness: true

如果您想验证所属中的唯一性,并且需要对许多表进行验证,则可以添加以下惟一索引:

rails generate migration add_index_to_trainer_animal_types

代码语言:javascript
运行
AI代码解释
复制
# migration file
add_index :trainer_animal_types, [:trainer_id, :animal_type_id], :unique => true
add_index :trainer_animal_types, :trainer_id
add_index :trainer_animal_types, :animal_type_id
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54342903

复制
相关文章
JS如何为表单聚焦控件设置醒目的样式
在用户填写表单时,为了让用户集中精力填写或某一个表单控件,可以通过设置此空间的样式来达到目的
itclanCoder
2023/02/26
7.3K0
JS如何为表单聚焦控件设置醒目的样式
web前端之锋利的jQuery八:jQuery插件的使用(表单验证、表单提交)
插件也称扩展,是一种遵循一定规范的应用程序接口编写出来的程序。 1.jQuery表单验证插件-Validation: 最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件-Validation,其拥有以下优点: 内置验证规则:拥有必填、数字、email、URL和信用卡号等19类内置验证规则。 自定义验证规则:可以很方便地自定义验证规则 简单强大的验证信息提示:默认了验证信息提示,并提供自定义覆盖默认提示信息的功能 实时
Java帮帮
2018/03/16
6.7K0
表单常用的控件有哪些_html表单控件样式修改
  readonly属性规定输入字段为只读(不能修改); readonly属性不需要值,它等同于readonly=“readonly”。
全栈程序员站长
2022/09/20
3.9K0
jquery上传控件uploadify使用备忘
我简单修改了js和样式,效果如下 使用起来也是超简单,将文件下载并解压到你网站目录下,然后 1、在使用位置插入代码 ============================= <iframe wid
冰封一夏
2019/09/11
9960
使用jQuery Validation插件来验证表单
jQuery Validation是一个用于验证表单的jQuery插件,简单易用,已经包含了16种内置的验证规则.Github上也有更多的验证规则可以使用.这都不是重点,重点是你可以轻松的定制自己的规则. 内置规则: required – Makes the element required. remote – Requests a resource to check the element for validity. minlength – Makes the element require a give
宅蓝三木
2018/02/07
2.1K0
使用jQuery Validation插件来验证表单
jquery 表单验证
("form :input.required").each(function(){
用户5760343
2019/10/10
3.6K0
jquery 表单验证
[WPF自定义控件库]简单的表单布局控件
在WPF中布局表单一直都很传统,例如使用上面的XAML,它通过Grid布局一个表单。这样出来的结果整整齐齐,看上去没什么问题,但当系统里有几十个表单页以后需要统一将标签改为上对齐,或者标签和控件中加一个:号等需求都会难倒开发人员。一个好的做法是使用某些控件库提供的表单控件;如果不想引入一个这么“重”的东西,可以自己定义一个简单的表单控件。
dino.c
2019/06/03
2.5K0
jquery 表单事件
.blur()    当元素失去焦点的时候触发事件。   .blur(handler(eventObject))     handler(eventObject)       每当事件触发时候执行的函数。   .blur([eventData],handler(eventObject))     eventData       一个对象,它包含的数据键值对映射将被传递给事件处理程序。     handler(eventObject)       每当事件
用户1197315
2018/01/19
1.6K0
bootstrap 表单控件
<form role="form"> <div class="checkbox"> <label>
用户5760343
2019/07/07
1.2K0
【实现】表单控件里的子控件的变化。
     上一篇说的是表单布局上的变化,也就是通过TR、TD的设置,实现了多行多列的效果。那么格子画好了,我们 可以往里面放控件了。上次都是用的文本框,这个显然是不行的,还要扩大这个范围。      这个控件的范围就比较大了,不光是TextBox、DropDownList,还有HTM编辑器这类的,都是可能会往里面放的,当然象GridView这样的就先不考虑了。另外还要可以扩展,可以随时增加新的子控件。      那么控件得类型这么多,要如何控制呢?第一用基类,第二用接口。      基类是.net Fram
用户1174620
2018/02/26
1.7K0
【实现】表单控件里的子控件的变化。
表单输入框聚焦效果
css 代码,当然你使用类选择器也是可以的,这里我使用了 css 的属性选择器 关于选择器的优先级,可自行尝试测试:
itclanCoder
2020/10/28
1.5K0
表单输入框聚焦效果
表单控件的副产品——查询控件
查询控件     当初在写表单控件的时候,突然想到,这个表单控件稍微修改一下不就是一个查询控件了吗?     那么查询控件需要做的什么事情呢?          1、自己描绘控件,比如能够自己添加文本框、下拉列表框这一类的控件。          2、可以自己获取用户输入的信息,根据查询方式组合where 后面的 SQL语句 。     是不是和表单控件很像呢?     在表单控件的SaveData()里面我们可以得到字段名称和对应的用户输入的信息,那么我们就可以写成这种方式。         
用户1174620
2018/02/07
1.1K0
第83天:jQuery中操作form表单
注意:checked、selected、disabled要使用.prop()方法。
半指温柔乐
2018/09/11
9140
macOS 中 聚焦搜索 的使用教程
macOS中的聚焦搜索是一个强大的工具,它可以帮助你快速找到文件、应用程序、联系人、电子邮件、互联网搜索结果等。
Alice_sa
2023/09/14
7100
VBA表单控件(三)
大家好,上节演示了数值调节钮和滚动条的小示例,本节开始介绍单选框、分组框和复选框控件的内容。
无言之月
2019/10/13
4.7K0
bootstrap 表单控件大小
<form role="form"> <div class="form-group"> <input class="form-control input-lg" type="text" placeholder=".input-lg"> </div> <div class="form-group"> <input class="form-control" type="text" placeholder="默认输入"> </div> <div class="form-group"> <input class="form-control input-sm" type="text" placeholder=".input-sm"> </div> <div class="form-group"></div> <div class="form-group"> <select class="form-control input-lg"> <option value="">.input-lg</option> </select> </div> <div class="form-group"> <select class="form-control"> <option value="">默认选择</option> </select> </div> <div class="form-group"> <select class="form-control input-sm"> <option value="">.input-sm</option> </select> </div> <div class="row"> <div class="col-lg-2"> <input type="text" class="form-control" placeholder=".col-lg-2"> </div> <div class="col-lg-3"> <input type="text" class="form-control" placeholder=".col-lg-3"> </div> <div class="col-lg-4"> <input type="text" class="form-control" placeholder=".col-lg-4"> </div> </div> </form>
用户5760343
2019/07/07
1.2K0
JQuery表格表单操作
1、多选框应用代码示例 <form action=”#” method=”post”> 你喜欢的明星是?<br /> <input type=”checkbox” name=”boxs” value=”张嘉译” id=”1″ /><label for=”1″>张嘉译</label> <input type=”checkbox” name=”boxs” value=”周润发” id=”2″ /><label for=”2″>周润发</label> <input type=”checkbox” name=”bo
苦咖啡
2018/05/07
1.5K0
VBA表单控件(一)
大家好,Excel中的控件是放置在窗体的一些图形对象,可以用来显示、输入数据或者执行操作等。包括命令按钮、数值调节钮文本框、列表框、单选框、复选框等。
无言之月
2019/10/13
5.1K0
Jquery 异步提交表单
前台部分代码: <div id='error'></div><!--错误提示信息--> <input type='text' id='username' name='username' readonly='Readonly'/><!--readonly为只读--> <input type='password' id='password' name='password'> <input type='text' id='company' name='company'> <input type='text'
用户1503405
2021/09/23
3K0
jquery 操作表单表格
$("tr:contains('王五')").addClass("selected")
用户5760343
2019/10/08
1.5K0
jquery 操作表单表格

相似问题

jQuery模式自动聚焦第一个表单域

13

Symfony表单验证名称为‘’的无效表单控件不可聚焦

18

TinyMCE - name='content‘的无效表单控件不可聚焦

15

使用jquery同时聚焦和(聚焦)

35

自动聚焦jquery弹出窗口中表单的第一个元素

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文