Rails Rails 中 更新数据 之前 一定要查询吗?

xiongmaojames · 2015年07月07日 · 最后由 xiongmaojames 回复于 2015年07月07日 · 2346 次阅读

交流 过程 中 我发现 1、这个问题本身 有争议 2、问题大答案也有争议

我提出问题 的依据是

里面 明显看到 find 方法 对于文档 中 的 代码 有人 说 这个 根本 没有查询,有人说查询了,因为 不查询 没法 更新

请问:1、您觉得 上面语句 的 查询了吗 2、如果您认为查询了,那 这个 是 必须的嘛 rails 有没有 提供 直接 更新 的办法

假设 我已经 知道 要更新的记录 的 id 我要实现 把 id 为 1 的记录 的 a 字段更新为‘草泥马’

直接 sql 可以 update table set a='草泥马' where id =1

还是 这 效率 高

先查询再更新,主要是因为 model 里的 validation,需要保证数据验证合法后再写入。 除非你是特别需要效率且不需要验证数据合法性,否则还是先读再写好。 另外查 development.log 就可以看到不同代码转换成 SQL 后的结果。 可以自己开 pry 做实验。

好吧,谢谢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号