惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
U
Unit 42
Y
Y Combinator Blog
I
InfoQ
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
量子位
Microsoft Security Blog
Microsoft Security Blog
B
Blog
The Cloudflare Blog
F
Fortinet All Blogs
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
C
Check Point Blog
S
SegmentFault 最新的问题
爱范儿
爱范儿
博客园 - 叶小钗
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
T
Tailwind CSS Blog

博客园 - kevinhgy

什么是REST架构 Ruby on Rails 性能优化的 10 大建议 向Google、Yahoo!、MSN、Ask和百度提交网站地图Sitemap总结 寻找Ruby on Rails项目兼职开发人员 rails 收藏 RoR中的一些基础知识[转载收藏] - kevinhgy - 博客园 Ruby: ActiveRecord Realation(转载收藏) Ruby: Active Controller(转载收藏) Perl Oicq 代码 [目录索引]──chenpeng兄发布 Msn Messager用户签名指令参考 MSN Protocol Version 11 简单介绍一下这个机器人(转载) - kevinhgy - 博客园 .NET(C#)连接各类数据库-集锦 (转载) - kevinhgy - 博客园 MMS 协议概述 编写自己的MSN机器人[转载] 惠普最新招聘 招募赴日IT/SAP SE/SSE/TL/PM,欢迎大家咨询. [外资银行]诚聘人才 Linux date 用法
Ruby on Rails中执行存储过程和指定SQL语句的方法
kevinhgy · 2010-03-18 · via 博客园 - kevinhgy

在使用RailsActiveRecord对数据库进行更新操作时,如果使用update(id,:field =>value) 方法更新数据,则此时rails并不是执行以下过程:

 1. Update table set field = value where id = id  而是实际执行了 2. Update table set field = value , field2 = value2 … where id = id 这意味着当数据库中这张表拥有50个字段的时候,Rails就分别更新了50个字段,只是将程序指定的field替换成了指定的value,其它没有指定的field一般不是我们所期望的执行更新的。 解决这个问题的方法是使用ActiveRecord::Baseconnection.execute方法,这个方法可以直接写更新数据库的sql语句,当然也可以执行SQL Server存储过程。使用以下语句就可以执行1中的数据库操作: Connection.execute(“update table set field = value where id = id”)