交流 过程 中 我发现 1、这个问题本身 有争议 2、问题大答案也有争议
我提出问题 的依据是
里面 明显看到 find 方法 对于文档 中 的 代码 有人 说 这个 根本 没有查询,有人说查询了,因为 不查询 没法 更新
请问:1、您觉得 上面语句 的 查询了吗 2、如果您认为查询了,那 这个 是 必须的嘛 rails 有没有 提供 直接 更新 的办法
假设 我已经 知道 要更新的记录 的 id 我要实现 把 id 为 1 的记录 的 a 字段更新为‘草泥马’
直接 sql 可以 update table set a='草泥马' where id =1
http://apidock.com/rails/ActiveRecord/Relation/update_all
谢谢
还是 这 效率 高
先查询再更新,主要是因为 model 里的 validation,需要保证数据验证合法后再写入。 除非你是特别需要效率且不需要验证数据合法性,否则还是先读再写好。 另外查 development.log 就可以看到不同代码转换成 SQL 后的结果。 可以自己开 pry 做实验。
好吧,谢谢