小编Gab*_*ley的帖子

为什么Chrome调试器认为关闭的局部变量未定义?

使用此代码:

function baz() {
  var x = "foo";

  function bar() {
    debugger;
  };
  bar();
}
baz();
Run Code Online (Sandbox Code Playgroud)

我得到了这个意外的结果:

在此输入图像描述

当我更改代码时:

function baz() {
  var x = "foo";

  function bar() {
    x;
    debugger;
  };
  bar();
}
Run Code Online (Sandbox Code Playgroud)

我得到了预期的结果:

在此输入图像描述

此外,如果eval在内部函数中有任何调用,我可以按照我想要的方式访问我的变量(无论我传递给什么都没关系eval).

同时,Firefox开发工具在两种情况下都给出了预期的行为.

与Chrome有什么关系,调试器的行为不如Firefox?我已经观察了这种行为一段时间,包括版本41.0.2272.43 beta(64位).

是不是Chrome的javascript引擎可以"平坦化"这些功能呢?

有趣的是,如果我添加在内部函数中引用的第二个变量,则该x变量仍未定义.

我知道在使用交互式调试器时经常有范围和变量定义的怪癖,但在我看来,基于语言规范,应该是这些怪癖的"最佳"解决方案.所以我很好奇这是因为Chrome比Firefox更优化.以及在开发期间是否可以轻松禁用这些优化(也许在开放工具打开时应该禁用它们?).

此外,我可以使用断点和debugger语句重现这一点.

javascript google-chrome google-chrome-devtools

155
推荐指数
3
解决办法
3万
查看次数

如何在Ruby类/模块命名空间中翻译模型?

我有一个型号Products :: Car.我该如何翻译其属性?

我已经尝试过了:

activerecord: 
  models:
    products:
      car: "??????????"
  attributes:
    products:
      car:
        owner: "????????"
Run Code Online (Sandbox Code Playgroud)

还有这个:

activerecord: 
  models:
    products_car: "??????????"
  attributes:
    products_car:
      owner: "????????"
Run Code Online (Sandbox Code Playgroud)

但如果我尝试使用Products :: Car.model_name.human,它仍然会说"Car".我的其他翻译工作得很好,语言设置为:ru.

localization namespaces model ruby-on-rails internationalization

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

如何使用Perl跨多行搜索和替换?

$ perl --version
This is perl, v5.10.1 (*) built for x86_64-linux-gnu-thread-multi

$ echo -e "foo\nbar" > baz.txt
$ perl -p -e 's/foo\nbar/FOO\nBAR/m' baz.txt
foo
bar
Run Code Online (Sandbox Code Playgroud)

我怎样才能让这个替换工作?

regex perl multiline

17
推荐指数
2
解决办法
1万
查看次数

在哪里放置Elastic Beanstalk配置命令只能在旋转时运行一次?

我知道我可以使用commands数组在.ebextensions/*.config中的源代码中输入命令.然而,这些都在每次部署时执行.如果我想在启动新实例时只执行一次配置命令怎么办?

configuration provisioning amazon-web-services amazon-elastic-beanstalk

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

是否可以使用Ruby 1.9.3在Heroku上运行我的Rails应用程序?如果是这样,怎么样?

我试过这个提示:https://github.com/thoughtbot/laptop/pull/14#issuecomment-3192270.

在部署我看到

-----> Using RUBY_VERSION: ruby-1.9.3-p0
Run Code Online (Sandbox Code Playgroud)

但我的日志显示环境变量不受尊重

INFO  ruby 1.9.2 (2011-07-09) [x86_64-linux]
Run Code Online (Sandbox Code Playgroud)

接受Hack​​y /实验解决方案!

编辑:我在雪松堆上.

ruby-on-rails heroku ruby-1.9.3 cedar

12
推荐指数
3
解决办法
4318
查看次数

用于处理React中的大型表单的插件或模式?

我有一个包含许多输入的表单,我想收集状态中输入的值,而不必onChange为每个输入定义一个或自定义组件.

React有一个LinkedStatesMixin似乎正在逐渐出现的官方插件,并且只是部分解决方案(例如,缺少单选按钮组):

https://github.com/facebook/react/issues/2302

https://github.com/facebook/react/issues/3573

同时来自Angular和Ember,用于设置输入绑定的优雅而简洁的API是前端框架中必不可少的功能.

在不使用弃用的情况下,实现此目的的React-ish方法最多的是什么LinkedStatesMixin?

reactjs

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

使用捆绑器,什么是判断宝石是否"可被要求"的最佳方式?

在我的Gemfile中说

group :test do
  gem 'rspec-core', require: false
end
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来查看该test组是否已被捆绑?(就像,在这种情况下bundle可能有或没有调用--without test).

我找不到一个,因此我开始寻找是否rspec-core可以获得,并找到了一些明显的解决方案:

 Bundler.definition.index.search("rspec-core")
 # or
 Gem.loaded_specs["rspec-core"]
Run Code Online (Sandbox Code Playgroud)

什么是最稳定的API来确定宝石是否可以获得?

(不试图要求它和救援LoadError)

ruby rubygems bundler

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

如何索引pg_trgm"'term'%ANY(array_column)`查询的字符串数组列?

我尝试了一个普通的Postgres gin索引以及pg_trgm gin_trgm_ops和gist_trgm_ops索引(使用此解决方法:https://stackoverflow.com/a/33016333/283398 ).

但是,我的查询上的EXPLAIN 'term' % ANY (array_column)即使在执行后也会显示顺序扫描set enable_seqscan = off;.

(对于我的用例,我需要部分匹配,而pg_trgm似乎比全文搜索更合适,因为我的数据不是语言.我的pg_trgm结果的质量非常好.)

我的用例是带有数组列的行,其中包含名字和全名(空格分隔)的混合.搜索词可以是第一个,最后一个或全名(以空格分隔).pg_trgm%运算符结果不区分大小写,并且在数组列中的名称的开头和结尾处显示高度匹配,这对于全名来说非常有用,因为它找到匹配的名和姓,但不一定是中间名.

https://github.com/theirix/parray_gin很有前途,但很老,并没有声称支持比9.2更新的Postgres.

postgresql

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

如何在预编译资产时临时更改输出路径,Sprockets/Rails资产管道3.1.0

我正在尝试更新此代码以使用已发布的Rails 3.1.0:

  # temporarily set the static assets location from public/assets to our spec directory
  ::Rails.application.assets.static_root = Rails.root.join("spec/javascripts/generated/assets")

  ::Rake.application['assets:clean'].invoke
  ::Rake.application['assets:precompile'].invoke
Run Code Online (Sandbox Code Playgroud)

现在已经删除了Sprockets :: Environment#static_root,暂时更改sprockets输出目录的最佳方法是什么?

编辑:此外,我希望能够清理自定义输出目录中的资产:)

ruby-on-rails ruby-on-rails-3.1 sprockets asset-pipeline

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

使用 PaperTrail,我可以为特定模型或属性选择退出“object_changes”吗?

这与#837有点相关,因为我的模型上有一个大数据列,但是我认为我可能会得到与该问题中提出的相反的更好的服务 - 即维护对象列而不是 object_changes 列.

我们一直在没有versions.object_changes 列的情况下运行。现在我已经添加了这个列,我意识到我正在为 object_changes 中的数据列写入很多我不关心的数据 - 因为对数据的微小更改会导致它被有效地写出 3 倍(一次在前后object两次object_changes)。

我不认为跳过或忽略是我想要的,因为我确实希望对数据进行更改以生成新版本。

我应该走自定义版本模型路线吗?或者你有什么推荐?

ruby ruby-on-rails paper-trail-gem

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

Elasticsearch:按距离和返回距离得分,不计算距离两次

我广泛搜索并发现我需要使用距离得分script_score并返回我需要使用的距离script_fields,但无法找到将两个查询或共享数据组合在一起的解决方案.所以我计算两次距离.如何避免两次计算距离而只计算一次?

elasticsearch

5
推荐指数
0
解决办法
254
查看次数

如何在码头工作期间大声失败-d?

使用docker-compose up -d,当我的一个容器无法启动(即错误代码运行命令退出),它静静地失败-我怎样才能使它无法大声?

(我是否正确地思考这个问题?我的最终目标是在我的开发环境中使用Docker.我希望能够改变我的环境并立即被告知错误.我想留待Docker的真实路径尽可能多,并且犹豫是否依赖于屏幕/ tmux等其他工具

docker docker-compose

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