我们喜欢将警告设置为错误设置,因为我们的策略是不检查带警告的代码,这是我们发现强制执行它的唯一有效方法.
我们还希望使用Obsolete属性来标记不应再使用的方法.
问题是将Obsolete属性添加到方法或类会立即导致大量项目无法构建(更不用说如果不推荐使用.NET API调用的问题).
有没有人有这个好的解决方案?
我们想要一个可见的,难以忽略的指示器,表明您正在使用已弃用的API,但这不会导致构建失败.我们希望在IDE和CI版本中看到警告.
https://devcenter.heroku.com/articles/deploying-to-a-custom-rails-environment上的 Heroku 文档说我不应该使用 staging.rb 文件来定义我的暂存环境。
\n\n\n创建另一个自定义环境(例如 \xe2\x80\x9cstaging\xe2\x80\x9d)并创建 config/environments/staging.rb 并使用 RAILS_ENV=staging 部署到 Heroku 应用程序可能很诱人。
\n这不是一个好的做法。相反,我们建议始终在生产模式下运行并通过设置配置变量来修改任何行为。
\n
我认为这是一个糟糕的建议,并且与完善的 Rails 最佳实践相冲突。不过,我并不是来争论最佳实践的。我来这里是想问:
\n有什么理由不在 Heroku 上使用 RAILS_ENV=staging 吗?
\n如果我创建 staging.rb 文件并像这样设置 xxx_ENV 配置变量,是否会有任何问题?
\nheroku config:add RACK_ENV=staging --remote staging\nheroku config:add RAILS_ENV=staging --remote staging\nRun Code Online (Sandbox Code Playgroud)\n 我想为facet查询UI计算facet计数,但我想我错过了一些东西,因为我无法使用facet过滤器得到我需要的数字.
这是一个例子.给出两个方面,每个方面有三个可能的术语:
Colors: {red, yellow, blue}
Notes: {do, re, mi}
Run Code Online (Sandbox Code Playgroud)
当我进行搜索时,构面中每个术语的计数不会考虑另一个方面中设置的过滤器.
为了显示:
[ ] All colors (18)
[x] Red (10)
[ ] Green (5)
[ ] Blue (3)
[ ] All notes (18)
[ ] Do (5)
[x] Re (7)
[ ] Mi (6)
Run Code Online (Sandbox Code Playgroud)
请注意,每个方面内的总计总和为查询的总命中数,就像没有设置过滤器一样.
我想要的行为是让Notes facet中的数字考虑到Colors facet中的过滤器,反之亦然.也就是说,注释术语的数字应该总和为10(以匹配红色滤波器),而不是18.
有趣的是,文档中的示例屏幕截图使用了Linked In中的一个示例,它实际上演示了我想要的行为.
http://www.elasticsearch.org/guide/reference/api/search/facets/
我能够通过为每个方面的每个术语手动重新提交一次查询来获得我想要的结果(呃)但是我想知道是否有办法通过更改我的查询获得与开箱即用的开箱即用相同的行为.
我使用了 Rack::Attack 的示例节流代码。
throttle('req/ip', limit: 100, period: 5.minutes) do |req|
req.ip unless req.path.starts_with?('/assets')
end
Run Code Online (Sandbox Code Playgroud)
这在我们的临时服务器上效果很好,但立即遇到了生产限制,因为 req.ip 返回我们的负载均衡器的 IP 地址,而不是客户端的 remote_ip。
请注意,remote_ip 是 ActionDispatch::Request 中的方法,而不是 Rack::Attack::Request 中的方法。
我们在 Ruby 2.2 上使用 Rails 3.2.2。