假设
teachers和students具备many-to-many的关系,那么需要一个Join 表,has_and_belongs_to_many默认该表名字为teachers_students,这样建立好关联之后可以直接通过teachers.students来获取。
Where:class Teacher < ActiveRecord::Basehas_and_belongs_to_many :students
end
andclass Student < ActiveRecord::Basehas_and_belongs_to_many :teachers
end
for rails 4:rails generate migration CreateJoinTableStudentTeacher student teacher
for rails 3:rails generate migration students_teachers student_id:integer teacher_id:integer
for rails < 3script/generate migration students_teachers student_id:integer teacher_id:integer
(note the table name lists both join tables in alphabetical order)and then for rails 3 and below only, you need to edit your generated migration so an id field is not created:create_table :students_teachers, :id => false do |t| 

转载于:https://www.cnblogs.com/znsongshu/p/7324629.html

rails用generate为两个模型创建has_and_belongs_to_many中间表相关推荐

  1. Ruby on Rails Tutorial 第六章 用户模型

    1.用户模型 (1)数据库迁移 Rails默认使用关系数据库存储数据,数据库中的表有数据行组成,每一行都有相应的列,对应数据属性.把列名命名为相应的名字后,ActiveRecord会自动把他们识别为用 ...

  2. 九、多表模型创建,一对一,一对多,基于对像的多表模型等

    环境: django1.9环境: settings.py,注释csrf,并且设置使用mysql数据库 数据库的对应关系图: 一.多表模型创建,一对多增删改查,多对多增删改查 一对多: models.p ...

  3. 基于IMAGE法的房间回响模型创建、C++代码实现、matlab仿真

    基于IMAGE法的房间回响模型创建.C++代码实现.matlab仿真 1.模型简介 \qquad在处理声音信号时,我们要对信号先进行采集.那么我们就必须要有,一个发出声音的声源,一个进行声音采集的传感 ...

  4. pytorch ——模型创建与nn.Module

    1.网络模型创建步骤 模型模块中分为两个部分,模型创建和权值初始化: 模型创建又分为两部分,构建网络层和拼接网络层:网络层有卷积层,池化层,激活函数等:构建网络层后,需要进行网络层的拼接,拼接成LeN ...

  5. PCB_元件模型创建

    元件模型创建 一.准备工作 根据PCB_AD的工程组成及创建完成项目的初始创建: 二.电阻模型的创建 1.打开项目,选择SCH Library,点击Add,填写模型名称,点击OK,即可创建一个名为RE ...

  6. Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件

    Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素 Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件 Fixflow引擎解析(二)(模型) - BPMN ...

  7. 3dsmax 模型创建+原生贴图(多图)

    3dsmax模型创建+原生贴图 创建一个球体 打开材质及贴图功能(快捷键M) 选择材质球(随便选一个圆球) 选择标准材质(Standard) 选择贴图(Maps) 勾选漫反射(Diffuse Colo ...

  8. 3dsmax 模型创建+原生贴图+obj/mtl+three.js 实现WEB3D

    3dsmax模型创建+原生贴图 模型创建请参考另一篇我的文章 3dsmax 模型创建+原生贴图(多图) 为何要原生贴图? 因为three.js只支持原生贴图的obj/mtl文件 obj/mtl导出 T ...

  9. SW2017学习笔记(二)SW模型创建的一般过程

    SW模型创建的一般过程 SW模型创建的一般过程 分析 创建工作目录 新建一个零件三维模型文件 创建零件中的各个特征 创建第一个特征(基础特征) 选择命令 创建截面草图 定义草图平面 定义截面草图 完成 ...

最新文章

  1. php开发我的世界插件,WorldEdit/开发与API
  2. 《Red Hat Linux命令速查》—— 带你玩转字符游戏
  3. JavaScript学习总结(五)——Javascript中==和===的区别
  4. centos7 安装 oracle 11G
  5. 工信部召开地方信息安全工作会议
  6. 网吧服务器ip地址修改,详解修改BXP服务器IP地址的方法
  7. 删除word空白页的6钟方法
  8. 想要内推字节跳动的同学看过来(含内推方式)
  9. 华为热设计工程师待遇_【华为热设计工程师面试】华为热设计工程师的笔试经历-看准网...
  10. 【老九】【C语言】CodeBlocks安装文档
  11. 百度地图 AK 申请 / 签名获取及使用方式
  12. 华为往事(九)--邳州开局
  13. 已解决:GET http://localhost:8080/statics/js/jquery-3.4.1.js net::ERR_ABORTED 404
  14. 工业线上赛(2022省赛)
  15. 十 三 弟 你 快 回 来 吧, 皇 帝 四 哥 叫 你 一 起 学 习 大 数 据 呢
  16. 七大管理工具:SWOT、PDCA、6W2H、SMART、WBS、时间管理、二八原则!
  17. Task使用线程等待延续
  18. Numpy 常用函数
  19. CentOS7用yum安装MySQL8.0 2209170054
  20. 无归岛【仙人掌图 最大权独立集】

热门文章

  1. 蓝桥杯 BASIC-29 基础练习 高精度加法
  2. 1038. 统计同成绩学生(20)-PAT乙级真题
  3. labelimg如何调整框的颜色_新手如何快速做字幕?
  4. linux远程日志rsyslog服务端和客户端安装(亲测)--自定义接收日志格式
  5. Linux htop工具使用详解
  6. MD5加密 java实现
  7. debian6 snmpd 安装配置
  8. php开发app接口-封装类
  9. kuangbin专题一 简单搜索
  10. android键盘事件