我在Heroku上设置遥控器进行制作和舞台演出.
在暂存时,我已将应用程序的env设置为包括:
RACK_ENV=staging
RAILS_ENV=staging
Run Code Online (Sandbox Code Playgroud)
我希望能够以我目前使用的相同方式指定staging我的组,或者:Gemfileproductiontestassets
group :staging do
gem "example", "~> 0.9"
end
Run Code Online (Sandbox Code Playgroud)
我了解如何添加自定义组.从我的application.rb:
groups = {
assets: %w(development test)
}
Bundler.require(:security, :model, :view, *Rails.groups(groups))
Run Code Online (Sandbox Code Playgroud)
但是,如何添加仅在暂存中加载的组?
我试过没有成功:
groups = {
assets: %w(development test),
staging: %(staging)
}
Bundler.require(:security, :model, :view, *Rails.groups(groups))
Run Code Online (Sandbox Code Playgroud) 由于AVAudioRecorder实例上的方法调用,我很难到达抛出异常的底部.我设置了异常断点,但我无法从堆栈跟踪中收集任何有用的信息.抛出异常的点是在调用时:
[recorder prepareToRecord];
如果我关闭断点,应用程序运行正常,没有任何负面影响.录音机正常运行.需要明确的是,情况的具体情况并不那么重要.更多的情况是"在这样的情况下我应该做些什么才能解决问题?" 我看不到任何有关手头工具问题的方法.关于ACBaseCodec的文档似乎陈旧,并没有说明可能导致异常抛出的原因.
Debug Navigator中的堆栈跟踪:

从单个线程堆栈跟踪:

有没有办法知道是什么导致了这个异常?
我似乎能够找到用于测试异常的唯一解决方案是使用SenTestingKit的STAssertThrows和STAssertThrowsSpecific,但是在抛出异常的两种情况下,被测试的应用程序都会挂起,直到我手动要求它继续.当然,测试框架应该吞下这些例外吗?如果没有,是否有人对测试异常有任何建议?
我一直在测试CoreLocation各个方面的准确性,并惊讶地发现传递给CLLocationMangerDelegate方法的新旧位置提供的准确性值:( void)locationManager:didUpdateToLocation:fromLocation本身非常不准确.
走一段路面(沿着一段道路,沿着建筑物的一侧)我发现,虽然CLLocationManager声称它提供的CLLocations具有5米的水平精度,实际上MKUserAnnotation显示的位置是任何高达距离我所知道的位置30米(通常显示为一排建筑物的对面).这表明精确度读数本身并不准确.CLLocationManager告诉我它的坐标精确到5米以内但实际上多达30米.
为了澄清,这不是缓存/时间戳问题它在某些领域是可重复的,而不是随着时间的推移而改进的东西.
还有其他人遇到过这个问题吗?
虽然我确信它们存在,但我很难找到或确定在ViewController中声明出口的官方最佳实践.
到目前为止,我可以看到3个选项:
当我尝试通过从IB拖入我的ViewController来自动生成属性时Xcode当前崩溃,但是从我记忆中,这样做会创建一个没有ivar的属性.也可以拖入ivar部分,这将创建一个没有属性的ivar.这表明,仅限房产和仅使用ivar的商店对苹果都是好的.
所以在viewDidUnload中我们需要为任何一个出口分配nil,但是dealloc呢.如果我们使用没有ivar的属性,我们如何释放我们的插座,我们不应该在init或dealloc中使用任何访问器?
在我看来,唯一允许我们在没有访问器的情况下释放我们的插座的模式是使用支持ivar的属性,因此我们可以在dealloc中手动释放我们的ivar而不使用其访问器,但是这是Apple的一个选项.代码生成不支持.
我一直在使用Heroku和Taps宝石一段时间,经常做一个heroku db:push将我的数据库推向生产.
今天早上我注意到一条消息,Heroku宝石已被弃用,已被Heroku Toolbelt取代.所以我卸载了宝石并安装了Heroku Toolbelt.
下次我去推送我的数据库时出现以下错误:
! Taps Load Error: cannot load such file -- taps/operation
! You may need to install or update the taps gem to use db commands.
! On most systems this will be:
!
! sudo gem install taps
Run Code Online (Sandbox Code Playgroud)
Heroku和Taps都已正确安装,但令人沮丧的是我已经尝试按照说明('安装或更新taps gem来使用db命令')而没有成功.(重新)安装顺利但我在尝试推送数据库时仍然遇到上述错误.有人可以建议修复吗?我正在使用rbenv.
如果我有多个组中需要的一系列宝石,我可以让组从基础组继承吗?
\n\n我知道我能做到:
\n\n\ngem "example", {:groups=>[:group_1, :group_2]}\n
或者:
\n\ngroup :group_1, :group_2 do\n gem "example"\nend\nRun Code Online (Sandbox Code Playgroud)\n\n但有没有办法做这样的事情:
\n\ngroup :base do\n gem "example"\nend\n\ngroup :group_1 < :base do\n \xe2\x80\xa6\nend\n\ngroup :group_2 < :base do\n \xe2\x80\xa6\nend\nRun Code Online (Sandbox Code Playgroud)\n 我在所有Rails项目中都使用了很多宝石,但这不是项目'Gems的一部分,例如用于管理POW的粉末.
使用全局Gemfile管理这些是有意义的,但我看不到任何这样的例子.
我应该如何在项目gemfiles中管理我不想要的全局Gems?当我设置新机器等时,单点安装会很好.
我正在使用chruby和ruby-install来管理我的Ruby版本.
我可以调用Rake任务并设置一个像这样的环境变量:
$ ONE=1 rake temp:both
Run Code Online (Sandbox Code Playgroud)
但是我如何设置两个环境变量?
这不起作用:
$ ONE=1 TWO=2 rake temp:both
Run Code Online (Sandbox Code Playgroud)
这有效,但令人困惑的是:
$ ONE=1 rake temp:both TWO=2
Run Code Online (Sandbox Code Playgroud)
如何在通话之前传递多个环境rake?
我在试图环绕使用我的头的过程srcset和sizes上img标签.
虽然我认为我掌握了基础知识 - 主要归功于这篇文章 - 我在实际应用sizes属性方面苦苦挣扎.
在我可以找到的所有示例中,事物都被大量简化,并且size属性被声明为好像在每个断点处,图像宽度将是视口宽度的精确比例,允许使用vm单位.例如:
sizes="(min-width: 36rem) 33.3vw,
100vw"
Run Code Online (Sandbox Code Playgroud)
当然,在现实生活中,图像通常位于其他容器内,这些容器本身可能位于其他容器内等等,每个容器都有自己的边距,填充或定位.
可以公平地说除了最简单的情况(当图像具有流体宽度并且不仅仅是视口的精确百分比时),calc必须使用,可能会在html标记中添加可怕的复杂计算,因为图像尺寸需要计算从视口宽度,向下通过任何容器到图像?例如,如何计算位于具有7px填充的容器的图像的正确大小,该容器本身位于容器的45%容器内,其容量为15px,位于侧边栏内,占主页容器的25% 15px的填充,最小宽度为1220px?
sizes="(min-width: 36rem) calc(((((1220px - (2 * 15px) * 25%) * 45%) - (2 * 15px) - (2 * 7px)),
100vw"
Run Code Online (Sandbox Code Playgroud)
试图在sizes属性中计算这个似乎很荒谬,特别是考虑到所有这些都可能在每个断点处发生变化.必须保持这个大规模复杂的计算与CSS的变化同步似乎是疯狂的.然后你有了补丁的浏览器支持calc.
我觉得我错过了一些明显的东西,但它是什么?
注意:我知道Alexander Farkas优秀的Lazy Sizes,它通过使用data属性为您进行大小计算,但我对标准用法感兴趣.