• 查询条件from = a下不重复的数据 T.where("from=?", "a").group("to").having("count(*) = 1").pluck("to")

    若 from = a ,to = xx 或者 from = xx , to = a 只算一条的话 T.where("not exist (select * from T t2 where t2.from = t.to and t2.to = t.from) ").group("from, to").having("count(*) = 1").pluck "from, to"

  • @huacnlee 能不能给帖子加一个“踩”的功能,有些帖子太辣眼睛。

  • 谨防比特币和区块链骗局 at 2018年01月25日

    👏

  • 多谢!😀

  • 显示器上的灯哪里买的?看起来很不错的样子。

  • <tbody>在外面包一层

  • 第一点:我还没想过 Class.new(User) 可以这么用,很cool,ActiveType没看过,看起来可以一试。 第二点,我考虑过使用context,但是不想把 errors object搞混淆了,同一个页面需要同时显示warnings和errors 的时候,我不能执行一下 valid?(context),然后再执行一下 valid。

    总体问题就是ActiveRecord不能简单的给单个实例 动态添加验证。必须依赖callbacks体系, 在Class上提前定义好验证。

    其实还有些验证问题和关联表验证有关,我都是用FormObject重写验证,这体验挺糟糕的。

    1. 动态设置验证 根据数据自定义 validation,把validation设计成数据库存储。 例如:

      company1.configure_validation_on :User, :email, :present
      company2.configure_validation_on :User, :state, :present
      

      那么当一个 User create的时候,如果user关联的是company1,那么久要验证email。如果user关联的是company2那么验证 state. 这些validation需要写在数据库里,而不是代码里。那么定义一个 validate: custom_validation 是最简单的,但是无法简单重用 rails的 ActiveModel::Errors, 用meta programming也不合适,因为validation被设计成一种callback。

    2. 除了Errors之外多一层Warnings 老板希望能让用户创建数据时不强制验证,但是创建完后给出warning,以及在页面上能显示warning。 那么如果能类似 record.errors 多一层record.warnings会很不错.

  • 看 application.js 里面有哪些代码,rails默认有turbolink, 可能触发了一次。

  • 估计有javascript代码触发了两次请求。 你的代码没法看,找人带一下吧。