小编Fel*_*van的帖子

如何使用ActiveRecord创建多列IN谓词?

我有以下'距离'表:

???????????????????????????????????????????????????????????????????????????????
? id ? origin_lat ? origin_lng ? destination_lat ? destination_lng ? distance ?
???????????????????????????????????????????????????????????????????????????????
?  1 ? 1.234567   ? 2.345678   ? 3.456789        ? 4.567890        ?       10 ?
?  2 ? 5.678901   ? 6.789012   ? 7.890123        ? 8.901234        ?       20 ?
???????????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

问题是,如何在必要时使用ActiveRecord和Arel创建以下SQL查询(由PostgreSQL支持):

SELECT * 
FROM distances
WHERE 
(origin_lat, origin_lng) IN ((1.234567, 2.345678), (5.678901, 6.789012))
AND
(destination_lat, destination_lng) IN ((3.456789, 4.567890), (7.890123, 8.901234));
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它不起作用:

Distance.where('(origin_lat, origin_lng) IN (?) AND (destination_lat, destination_lng) IN (?)', [[1.234567, 2.345678], [5.678901, 6.789012]], [[3.456789, 4.567890], …
Run Code Online (Sandbox Code Playgroud)

ruby sql postgresql activerecord ruby-on-rails

5
推荐指数
1
解决办法
265
查看次数

ActiveRecord:如何找到所有孩子符合条件的父母?

假设我的Parent模型有很多Child,Child也属于OtherParent.

我怎样才能找到所有属于Parent它的所有地方?ChildOtherParent

在纯SQL中我能做到

Parent.find_by_sql(<<SQL)
  SELECT *
  FROM parents p
  WHERE NOT EXISTS (
    SELECT *
    FROM children
    WHERE parent_id = p.id
      AND other_parent_id IS NULL
  )
SQL
Run Code Online (Sandbox Code Playgroud)

(从这里开始),但如果可能的话,我更愿意利用ActiveRecord.

谢谢!


我正在使用Rails 4.2.1和PostgreSQL 9.3

postgresql activerecord ruby-on-rails

5
推荐指数
1
解决办法
1009
查看次数

如何使用 YouTube IFrame Player API 监听时间更改事件?

我在 YouTube IFrame Player API 文档上找不到任何方法来监听时间变化(因此我可以在 UI 中显示视频的当前时间/持续时间)。有没有办法在不轮询的情况下做到这一点getCurrentTime()

javascript youtube iframe youtube-iframe-api

5
推荐指数
1
解决办法
2101
查看次数