vimgdb的安装过程
2014-01-28 23:34
260 查看
class Reader < ActiveRecord::Base has_many :books end class Book < ActiveRecord::Base belongs_to :reader end
关联这两个模型的实例有几种方法
第一种方法:
@book = Book.new(params[:book]) @book.save
新建book,直接将客户端传回的reader_id赋值给book的reader_id字段,保存book即可。
没有显式地调用关联方法,某种程度上相当于直接操作数据库,但达到了关联的效果。比较简单。
这样做有一个问题:没有对客户端传回的reader_id进行校验,可能会破坏数据库的完整性。
第二种方法
@book = Book.new(params[:book]) @book.reader = Reader.find(params[:reader_id]) @book.save
查询数据库,对客户端传回的reader_id进行了校验,显式地调用了关联方法。
这样做有两个问题(哈哈,还多了一个):1.多了一次数据库查询,性能下降;2.存在交叉存取问题,仍可能会破坏数据库的完整性。
第三种方法:
采用第一种方法处理,另外在数据库层面加上外键约束。即可避免以上问题。
相关文章推荐
- Gentoo安装vimgdb详细过程
- vim及vimgdb编译安装过程记录
- Linux-使用命令安装gcc/g++, gdb, vim
- Linux下使用命令安装gcc/g++, gdb, vim
- vim安装过程中所涉及的问题及处理办法
- Ubuntu下vim+gcc+gdb安装及使用
- 安装过程出现错误: E: Package ‘vim’ has no installation candiate
- 针对《Vim配置、插件和使用技巧》博文安装过程问题解答
- vim安装过程中所涉及的问题及处理办法
- yum安装gcc,gdb,gcc及vim配置
- 在虚拟机里安装centos 6.4和centos 5.8里配置vim 7.4安装过程
- Linux-使用命令安装gcc/g++, gdb, vim
- mac os上的vim自动补全插件YouCompleteMe的安装过程
- vim安装过程中所涉及的问题及处理办法
- vim插件详细安装过程
- vim安装过程中所涉及的问题及处理办法
- ~在CentOS中安装vi/vim、gcc/g++、gdb、catgs工具~
- g++/gdb/ctags/vim的安装
- [linux]如何使用命令安装gcc/g++, gdb, vim
- vim安装过程中所涉及的问题及处理办法