我可以使用 Ruby DBF gem 的限制、订单或日期查询吗?
Can I use limits, orders or date queries with the Ruby DBF gem?
我指的是这个 gem:https://github.com/infused/dbf
我已经阅读了自述文件并浏览了 API 文档。感觉我应该能够在 DBF Table 上使用 ActiveRecord 样式查询,但它看起来不像。
我希望获得最后 X 条记录,按日期查询或使用 order 以某种方式帮助将 DBF 文件同步到另一个数据库,而无需通过 全部。
唯一的例子似乎很简单"finds",我无法进行任何比较或以其他方式工作:
widgets.find :first, :slot_number => 's42'
有人知道怎么做吗? (另一个 gem/technique 也是合理的建议)。
虽然您不能使用 ActiveRecord 样式查询,但 DBF::Table 是一个 Enumerable,因此您可以利用任何可枚举方法来完成您想要的大部分操作。
例如,假设您只需要在 2005 年 1 月 1 日和 2005 年 7 月 15 日之间创建的小部件。我们还假设小部件 table 有一个 created_date
列。你可以这样做:
range = (Date.new(2005,1,1)..Date.new(2005,7,15))
widgets.select { |w| range.includes?(w.created_date) }
或按大小列对所有小部件进行排序:
sorted_widgets = widgets.sort_by { |w| w.size }
如果您的 DBF 文件不是太大,您也可以将其转换为数组以访问所有 Ruby 的数组方法。例如,让我们获取最后 10 条记录:
widgets.to_a.last(10)
我指的是这个 gem:https://github.com/infused/dbf
我已经阅读了自述文件并浏览了 API 文档。感觉我应该能够在 DBF Table 上使用 ActiveRecord 样式查询,但它看起来不像。
我希望获得最后 X 条记录,按日期查询或使用 order 以某种方式帮助将 DBF 文件同步到另一个数据库,而无需通过 全部。
唯一的例子似乎很简单"finds",我无法进行任何比较或以其他方式工作:
widgets.find :first, :slot_number => 's42'
有人知道怎么做吗? (另一个 gem/technique 也是合理的建议)。
虽然您不能使用 ActiveRecord 样式查询,但 DBF::Table 是一个 Enumerable,因此您可以利用任何可枚举方法来完成您想要的大部分操作。
例如,假设您只需要在 2005 年 1 月 1 日和 2005 年 7 月 15 日之间创建的小部件。我们还假设小部件 table 有一个 created_date
列。你可以这样做:
range = (Date.new(2005,1,1)..Date.new(2005,7,15))
widgets.select { |w| range.includes?(w.created_date) }
或按大小列对所有小部件进行排序:
sorted_widgets = widgets.sort_by { |w| w.size }
如果您的 DBF 文件不是太大,您也可以将其转换为数组以访问所有 Ruby 的数组方法。例如,让我们获取最后 10 条记录:
widgets.to_a.last(10)