小编Tom*_*m H的帖子

鳍状肢宝石可以返回启用用户的数量吗?

我们正在探索使用flipper gem ( https://github.com/jnunemaker/flipper ) 来控制看到新功能的人。在我们的第一个测试中,我们希望仅向看到宣传它的横幅的前 X 个用户显示特定功能。

我们考虑使用百分比,但业务对数字非常具体,并且还希望立即达到该数字,然后为所有其他用户禁用该功能,而不是为那些首先看到它的用户禁用它。使用百分比,我们无法找到一种方法来确保正确的数字会看到它,并且第一个 x 的每个人都会看到它。

在 gates/actor.rb 里面,有这个:

enabled_actor_ids = value
Run Code Online (Sandbox Code Playgroud)

这意味着我们可以获得已启用 ID 的列表,并对其进行计数,但我们无法找到该列表是否或在哪里可能会暴露。

由于我们使用 AR 适配器作为试验,因此我们在连接到 flipper_gates 表的 actor 对象上创建了一个范围,但这感觉非常脆弱并且非常深入到 gem 的内部工作中。

任何意见是极大的赞赏。

ruby ruby-on-rails flipper

6
推荐指数
2
解决办法
1275
查看次数

如何使用 regexp_replace 只替换捕获组而不替换完整的匹配字符串

我们在数据库中有一列包含类似于“150 W 96 Th St”和“4514 282 Nd St”的值。您可能已经注意到,数字街道名称和后缀之间有一个空格,即“96 TH”。

我正在尝试编写一个将删除该空间的 postgresql 查询。使用以下内容:

SELECT regexp_matches('150 W 96 Th St', ' \d+( )(?:St|Nd|Rd|Th) ')
Run Code Online (Sandbox Code Playgroud)

我得到:

{" "}
Run Code Online (Sandbox Code Playgroud)

表示仅返回捕获组。

然而,当我跑

SELECT regexp_replace('150 W 96 Th St', ' \d+( )(?:St|Nd|Rd|Th) ', '')
Run Code Online (Sandbox Code Playgroud)

我得到

150 WSt
Run Code Online (Sandbox Code Playgroud)

整个匹配字符串被替换的地方。

我也试过

SELECT regexp_replace('150 W 96 Th St', ' \d+( )(?:St|Nd|Rd|Th) ', '\1')
Run Code Online (Sandbox Code Playgroud)

我认为这只会取代第一个捕获组。

我还应该尝试什么?

regex postgresql regexp-replace

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

Gem GeoKit:尝试初始化我自己的地理编码器时未初始化的常量GeoKit :: Geocoders :: Geocoder

我按照安装geokit-rails(v 2.0.1)和geokit(v 1.8.5)的说明进行操作.然后尝试创建自己的地理编码器(用于测试).这是我在config/initializers/fake_geocoder.rb文件中使用的代码

require 'geokit'

module GeoKit
  module Geocoders
    class FakeGeocoder < Geocoder
      #to use, include :fake in the list of geocoders
      private

      def self.do_geocode(location, options = {})
          geocode_payload = GeoKit::GeoLoc.new(:lat => 123.456, :lng => 123.456)  
          geocode_payload.success = true 
          return geocode_payload
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

尝试启动rails控制台(捆绑exec rails c)时,出现以下错误:

../config/initializers/fake_geocoder.rb:6:in    `<module:Geocoders>': uninitialized constant GeoKit::Geocoders::Geocoder (NameError)
from ../config/initializers/fake_geocoder.rb:5:in `<module:GeoKit>'
from ../config/initializers/fake_geocoder.rb:4:in `<top (required)>'
Run Code Online (Sandbox Code Playgroud)

您可以提供有关无法找到Geocoder类的原因的任何建议将不胜感激.

ruby-on-rails geokit

0
推荐指数
1
解决办法
1214
查看次数