最近在看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进行指定:

  class Mouse < ActiveRecord::Base
     set_table_name "mice"#这里定义指定的表格名
  end

2. 在ror的api帮助中找到关于belongs_to的帮助,发现要进行自定义外键字段名可以这样定义:

class Book < ActiveRecord::Base
    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默认的表格名和外键字段映射关系?相关推荐

  1. mysql中平方米显示不出来_MySQL - 添加外键

    目录 整理了一下这个知识,虽然很简单哈,为了以后的方便. 为已经添加好的数据表添加外键 语法: alter table 表名 add constraint FK_ID foreign key(你的外键 ...

  2. Vue修改Muse-UI中的默认ICON

    1.配置好iconfont 2.找到对应组件下的js文件,如toast组件下的js文件为:muse-ui-toast.esm.js 3.修改config中的参数 var config = { posi ...

  3. 【目标检测】SPP-Net中候选区域在原图和feature map之间的映射关系

    目录:候选区域在原图和feature map之间的映射关系 一.问题转化 1. 什么是感受野?以及感受野大小如何计算? 2. 感受野上的坐标映射 3. 论文中关于特征映射的讲解 二.何凯明演讲的PPT ...

  4. Unity中的输入事件总结与数字电视遥控器键值映射

    版权声明:欢迎批评指正,转载请务必注明原文链接:欢迎文章下公开讨论. https://blog.csdn.net/cordova/article/details/51036547 一.Unity的基本 ...

  5. mysql修改外键字段报异常_mysql修改索引时,外键约束造成的奇怪问题_MySQL

    Mysql外键 bitsCN.com mysql修改索引时,外键约束造成的奇怪问题 事情是这样的,在Windows的mysql5.5 ,我想修改一个表的索引,于是执行 [sql] ALTER TABL ...

  6. 教你如何修改地图中的默认字体和大小

    觉得默认地图中的字体太小?没关系,你可以通过BIGEMAP下载到大字体地图,自定义字体(宋体.雅黑等等).字号大小和颜色等,支持电子地图.卫星地图,如图 第一步,下载电子地图的大字体可直接选择地图源为 ...

  7. mysql1440秒未活动_修改phpMyAdmin中的默认1440超时时间

    Struts2版本升级到struts2 2.3.15.1操作说明 Struts2的官网公布了一个远程命令执行漏洞,官方强烈建议升级到2.3.15.1或者以上版本,该版本包含校正过的struts2核心库 ...

  8. 如何修改WAMP中mysql默认空密码

    WAMP安装好后,mysql密码是为空的,那么要如何修改呢?其实很简单,通过几条指令就行了,下面我就一步步来操作. 首先,通过WAMP打开mysql控制台. 提示输入密码,因为现在是空,所以直接按回车 ...

  9. 如何修改WAMP中mysql默认空密码重新登录phpmyadmin

    2019独角兽企业重金招聘Python工程师标准>>> WAMP安装好后,MySQL密码是为空的,如何修改? 1. 首先,通过WAMP打开mysql控制台. 2. 提示输入密码,因为 ...

  10. 修改 IDEA 中 @author 默认值

    1.打开 Help -> Edit Custom VM Options 2.添加一行配置 -Duser.name=AuthorName 3.重启 IDEA 后配置成功

最新文章

  1. 受益匪浅:十个哲理寓言,十个成功秘诀
  2. 关于英伟达数字人文章的致歉和说明
  3. oracle ogg双向通步,使用ogg的Oracle-Oracle的双向复制
  4. linux安装多版本php_Linux系统下为Nginx安装多版本PHP
  5. redis安装全过程
  6. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课1.4节修改图稿的视图...
  7. VC程序中运行其他程序的三种方法
  8. c语言链表内存分配失败,链表的C语言实现之动态内存分配
  9. 飞秋官方下载 这个程序很不错
  10. 读取HTTP请求消息头字段案例代码
  11. C4d酷炫立体空间质感电商海报素材,紧抓时尚潮流
  12. OpenShift 4 之AMQ Streams(1) - 多个Consumer从Partition接收数据
  13. java 反射获取对象_java 反射-反射对象的获取
  14. “我曾经的小项目比我在软件行业十年产生的影响还要大”
  15. 年仅44岁,又一高校教师英年早逝
  16. Spring框架学习记录二:装配Bean
  17. php 建行外联平台退款
  18. SIFT之极值点检测
  19. mac 修改 DNS
  20. java类型参数推断_Java泛型类型推断

热门文章

  1. 基于神经网络的PID控制,pid神经网络什么原理
  2. Linux CentOS 7安装Oracle11g超完美教程
  3. 如何用PADS打开AD的PCB文件?
  4. 物联网全栈教程-从云端到设备(四)
  5. 详细安装WIN 10纯净版(虚拟机安装、真机笔记本安装)
  6. 吴恩达深度学习tensorflow版本问题
  7. 基于PSIM及其DLL模块的单相全桥并网逆变器仿真
  8. 冲刺高阶ADAS市场,毫米波雷达多元侦测整合成主流趋势
  9. MFC定时器SetTimer函数用法总结
  10. .h文件、.inc文件、.lib文件的功能及三者之间的异同