• 为这个世界操碎了心 at 2021年05月07日

    哪里奇葩你可以贴代码出来看一下 Talk is cheap. Show me the code

  • Rails5 改了,要用

    User.first.state_before_type_cast
    
  • #3 楼 @seeyoup 我觉得是,User.includes(:topics).where('users.id=1'),where 条件是 ('users.id=1'),这个可以直接取得 users 表的结果集,然后查 topics 表时使用 where in,这样不需要 join 表,这属于简单的情况(使用两条 sql 更为合适)。你可以是试下 User.includes(:topics).where(topics.XXX) 【前提是 user 和 topics 是 1 对 N 关系】(这属于复杂情况),这样无可避免 join 表。include 存在的意义应该:默认的简单情况下它会使用两次查询,复杂的情况使用 join 表进行一次查询,这样更加灵活。总结来说 where 条件是 1【1 对 n 关系的 1】的表 include 会用 where in 处理不需要用 join(两条 SQL),where 条件是 n 的表会用 join 表处理(一条 SQL)——新手