如何修改RubyOnRails中ActiveRecord默认的表格名和外键字段映射关系?
最近在看ROR的东西,并试着实践了一下。
在看完了ROR那个诱人的demo短片和Eiffel Qiu的rubyonrails.pdf后,我在佩服ror的快捷之余,有两个疑问:
1. 如何在ror无法自动找到model和数据库表格对应关系的时候定义后,如何自定义表格和model ActiveRecord class的对应关系?
2. 演示中在class book中添加了“belongs_to :category”后,自动建立了books中的column category_id和categories表的id的外键对应,如果我们不想要用category_id作为字段名的时候如何设置对应关系?
五一有空实践了一下,这两个问题可以这样解决:
1. 定义了一个model之后,rails会自动尝试着去找到该ActiveRecord class对应的复数形式数据库表格,并建立相应的属性。例如如果class名是person的话,rails会自动找到名为people的表格(如果有的话)。
这对于表格名是一些常用词汇的情况是比较方便,但是对于一些简写的数据库表名或者一些带有明显中文色彩的表名(例如gd_novel,gd-广东)等,rails是无能为力的,无法帮你找到。
这个时候,使用set_table_name进行指定:
set_table_name "mice"#这里定义指定的表格名
end
2. 在ror的api帮助中找到关于belongs_to的帮助,发现要进行自定义外键字段名可以这样定义:
belongs_to(:Category,:class_name => 'Category', :foreign_key=>'cat_id' )
# ^属性名 ^属性的实现类名 ^对应categories ID字段的外键
end
这样books表可以这样定义:Books(id integer, title varchar(100)...cat_id integer...)。
对于ActiveRecord的其他关系定义函数:has_and_belongs_to_many、has_many、has_one等都是通过foreign_key定义外键字段名。
〔附〕:ruby on rails api:http://api.rubyonrails.com/
如何修改RubyOnRails中ActiveRecord默认的表格名和外键字段映射关系?相关推荐
- mysql中平方米显示不出来_MySQL - 添加外键
目录 整理了一下这个知识,虽然很简单哈,为了以后的方便. 为已经添加好的数据表添加外键 语法: alter table 表名 add constraint FK_ID foreign key(你的外键 ...
- Vue修改Muse-UI中的默认ICON
1.配置好iconfont 2.找到对应组件下的js文件,如toast组件下的js文件为:muse-ui-toast.esm.js 3.修改config中的参数 var config = { posi ...
- 【目标检测】SPP-Net中候选区域在原图和feature map之间的映射关系
目录:候选区域在原图和feature map之间的映射关系 一.问题转化 1. 什么是感受野?以及感受野大小如何计算? 2. 感受野上的坐标映射 3. 论文中关于特征映射的讲解 二.何凯明演讲的PPT ...
- Unity中的输入事件总结与数字电视遥控器键值映射
版权声明:欢迎批评指正,转载请务必注明原文链接:欢迎文章下公开讨论. https://blog.csdn.net/cordova/article/details/51036547 一.Unity的基本 ...
- mysql修改外键字段报异常_mysql修改索引时,外键约束造成的奇怪问题_MySQL
Mysql外键 bitsCN.com mysql修改索引时,外键约束造成的奇怪问题 事情是这样的,在Windows的mysql5.5 ,我想修改一个表的索引,于是执行 [sql] ALTER TABL ...
- 教你如何修改地图中的默认字体和大小
觉得默认地图中的字体太小?没关系,你可以通过BIGEMAP下载到大字体地图,自定义字体(宋体.雅黑等等).字号大小和颜色等,支持电子地图.卫星地图,如图 第一步,下载电子地图的大字体可直接选择地图源为 ...
- mysql1440秒未活动_修改phpMyAdmin中的默认1440超时时间
Struts2版本升级到struts2 2.3.15.1操作说明 Struts2的官网公布了一个远程命令执行漏洞,官方强烈建议升级到2.3.15.1或者以上版本,该版本包含校正过的struts2核心库 ...
- 如何修改WAMP中mysql默认空密码
WAMP安装好后,mysql密码是为空的,那么要如何修改呢?其实很简单,通过几条指令就行了,下面我就一步步来操作. 首先,通过WAMP打开mysql控制台. 提示输入密码,因为现在是空,所以直接按回车 ...
- 如何修改WAMP中mysql默认空密码重新登录phpmyadmin
2019独角兽企业重金招聘Python工程师标准>>> WAMP安装好后,MySQL密码是为空的,如何修改? 1. 首先,通过WAMP打开mysql控制台. 2. 提示输入密码,因为 ...
- 修改 IDEA 中 @author 默认值
1.打开 Help -> Edit Custom VM Options 2.添加一行配置 -Duser.name=AuthorName 3.重启 IDEA 后配置成功
最新文章
- 受益匪浅:十个哲理寓言,十个成功秘诀
- 关于英伟达数字人文章的致歉和说明
- oracle ogg双向通步,使用ogg的Oracle-Oracle的双向复制
- linux安装多版本php_Linux系统下为Nginx安装多版本PHP
- redis安装全过程
- 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课1.4节修改图稿的视图...
- VC程序中运行其他程序的三种方法
- c语言链表内存分配失败,链表的C语言实现之动态内存分配
- 飞秋官方下载 这个程序很不错
- 读取HTTP请求消息头字段案例代码
- C4d酷炫立体空间质感电商海报素材,紧抓时尚潮流
- OpenShift 4 之AMQ Streams(1) - 多个Consumer从Partition接收数据
- java 反射获取对象_java 反射-反射对象的获取
- “我曾经的小项目比我在软件行业十年产生的影响还要大”
- 年仅44岁,又一高校教师英年早逝
- Spring框架学习记录二:装配Bean
- php 建行外联平台退款
- SIFT之极值点检测
- mac 修改 DNS
- java类型参数推断_Java泛型类型推断