Sql Rails在children方法上的作用域
我想谈谈儿童方法 Parent.rb Child.rb 现在我想找到所有有贷款的父母,其中Sql Rails在children方法上的作用域,sql,ruby-on-rails,Sql,Ruby On Rails,我想谈谈儿童方法 Parent.rb Child.rb 现在我想找到所有有贷款的父母,其中mymethod和:valid属性==true 大概是 Item.where(loans.where(valid: true, mymethod: true), true) 我想你所需要的就是这个: Item.joins(:children).where children: { valid: true, mymethod: true } 我想你所需要的就是这个: Item.joins(:children
mymethod
和:valid属性==true
大概是
Item.where(loans.where(valid: true, mymethod: true), true)
我想你所需要的就是这个:
Item.joins(:children).where children: { valid: true, mymethod: true }
我想你所需要的就是这个:
Item.joins(:children).where children: { valid: true, mymethod: true }
我的方法不是活动记录属性正确的方法?可以通过任何方式从数据库计算此方法吗?如果不是,我们需要获取所有与其他条件匹配的记录,然后从数组中筛选它们。恐怕不是,它是一种检查某个日期是否已过且该日期与孩子的属性无关的方法?还解释了孩子与家长以及项目与贷款之间的关系。我的方法是一种非活动记录属性正确的方法?该方法可以通过任何方式从数据库中计算出来吗?如果不是,我们需要获取所有与其他条件匹配的记录,然后从数组中筛选它们。恐怕不是,这是一种检查某个日期是否已过且该日期与孩子的属性无关的方法?还要解释孩子与家长以及物品与贷款之间的关系。.问题是
mymethod
不是一个要查询的属性,或者至少我从评论中了解到了这一点,如穆罕默德所说,这将给你一个“unknown column mymethod”错误在这种情况下,您可以使用before_save回调方法对DB这个字段执行持久化。我也考虑过这一点,但mymethod会检查日期是否已过。所以今天可能是真的,但明天可能是假的,而没有保存。因此回调无法解决此问题。您可以使用where(“存储日期
问题在于mymethod
不是查询的属性,或者至少我从评论中了解到了这一点,如Mohammed所说,这将为您提供一个“未知列mymethod”“错误在这种情况下,您可以使用before_save回调方法对DB这个字段执行持久化。我也考虑过这个问题,但mymethod会检查是否已过日期。所以今天它可能是真的,但明天它可能是假的,没有任何拯救。所以回调不能解决这个问题。您可以使用where(“存储的日期<当前日期”)
Item.joins(:children).where children: { valid: true, mymethod: true }