小编Jac*_*lyn的帖子

如何通过AngularJS路由保存数据?

我是AngularJS的新手,我正在尝试为自己构建一个简单的小应用程序.我有正在获取的应用程序的JSON数据$resource,并且这些数据应该在多个视图/路由中相同.但是,当我转到新路径时,JSON数据(存储为$scope.data)不再可用于新视图.如何将此数据传递到新视图而不需要其他提取?(教程电话目录应用程序每次从我所知道的内容中重新获取此数据.)

据我所知,$rootScope可以做到这一点,但似乎总是不赞成.如果这没有多大意义,我道歉; 我非常喜欢在这里潜水.

json scope angularjs

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

Node.js/Express缓存

我对Node.js/Express很新,但我想我正慢慢掌握它.我添加了这段代码,从我所知道的代码看起来非常标准:

app.configure('production', function() {
    var oneYear = 31557600000;
    app.use(express.static(__dirname + '/public', { maxAge: oneYear }));
    app.use(express.errorHandler());
});
Run Code Online (Sandbox Code Playgroud)

浏览Chrome的缓存会发现,是的,一切都在缓存.欢呼!但是当我在我的网站上运行Chrome的审核时(我注意到,在其他基于节点的网站上),Chrome表示该网站没有缓存任何内容.什么可能导致这种差异?

caching google-chrome browser-cache node.js express

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

(Rails) PaperTrail 和 RSpec

我在使用 RSpec 测试时遇到了PaperTrail(Rails 对象的自动版本控制)的问题。通常我希望我的测试在没有 PaperTrail 版本控制的情况下运行,但有一些测试我希望打开 PaperTrail。我通常使用 Guard 和 Spork 运行我的测试,我可以使用类似PaperTrail.enabled = truePaperTrail.enabled = false围绕给定测试的东西,一切正常。

但是,当我使用 RSpec 运行测试时,需要 PaperTrail 的测试失败。更具体地说,虽然before过滤器中的代码可以生成版本对象,但测试中的代码不能。经过大量的挖掘、修补和尝试代码片段(我已经尝试过thisthis),看起来最好的解决方案是使用PaperTrail README 中require "paper_trail/frameworks/rspec"提到的行。

不幸的是,这些中的每一个都让我保持在我开始的地方——测试通过 Guard/Spork 但不是普通的 RSpec。这是一个特别的问题,因为当我在本地使用 Spork 时,我们的持续集成服务器直接运行 RSpec。

有没有人有任何见解?

rspec ruby-on-rails guard spork paper-trail-gem

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

使用ImageMagick/ZBar读取QR码

我有扫描的图像文件,我执行一些预处理,让他们看起来像这样:

QR码图片

我的手机的ZBar应用可以很好地读取这个二维码,但zbarimg似乎无法弄明白.我已经在ImageMagick中尝试过各种各样的东西以使其更平滑(-smooth,-morphology)但即使结果稍微好看,zbarimg仍然会出现空白.

为什么我的手机的ZBar比我的电脑(zbar-0.10)更好?我能做些什么来zbarimg成功阅读这个内容吗?

imagemagick zbar

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

如何设置OSX屏幕保护程序配置表?

我正在为OSX(Mountain Lion)制作屏幕保护程序,我在设置配置表时遇到问题(因此,当用户点击"系统偏好设置"中的"屏幕保护程序选项..."时,会显示我的选项).在互联网上任何地方编写OSX屏幕保护程序似乎只有两三个教程,而且它们都已经存在了几年,因此这些材料并没有完全转化为OSX 10.8和Xcode 4.

首先,在我的ScreenSaverView.m文件中,我有:

- (BOOL)hasConfigureSheet
{
    return NO;
}

- (NSWindow*)configureSheet
{
    return nil;
}
Run Code Online (Sandbox Code Playgroud)

...然而,在"系统偏好设置"中,"屏幕保护程序选项..."按钮仍然可以点击(单击时没有任何反应),而不是像"Arabesque"屏幕保护程序中那样禁用.

单击按钮时显示配置页的步骤是什么,为什么当前没有禁用该按钮?


编辑:

我意识到为什么没有禁用"屏幕保护程序选项..."按钮.我忘了把它包含-(BOOL)hasConfigureSheet;ScreenSaverView.h文件中.然而,关于如何使配置表出现的问题仍然存在.

macos objective-c screensaver osx-mountain-lion

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

如何确定Ruby中是否传递了可选参数

如果我在Ruby中有以下方法:

def foo(arg1, arg2 = "bar")
  puts arg1
  puts arg2
end
Run Code Online (Sandbox Code Playgroud)

有没有办法确定用户是否在方法中传递了值arg2?显然我可以添加if arg2 == "bar"到方法中,但这并没有捕获用户手动传入的情况"bar".当然,我可以将默认设置为没有用户可以传递的内容,但随后很快就变得非常难看.

那里有什么优雅的东西吗?

ruby parameters optional-parameters

5
推荐指数
2
解决办法
3423
查看次数

关注RSpec匿名控制器

我正试图在RSpec中测试一个Rails控制器问题(尽管我不确定这个问题与我的问题有关),所以我想我会使用一个匿名控制器.这是我的设置:

describe MyConcern do
  controller do
    include MyConcern

    def edit
      puts "Checkpoint!"
      @value = concern_method
      render text: "test edit method called"
    end
  end

  it "should call concern_method" do
    get :edit, id: 1
    assigns(:value).should eq "expected_value" # Set by concern_method
  end
end
Run Code Online (Sandbox Code Playgroud)

现在这里是奇怪的部分.我用Guard测试.当Guard检测到spec文件的保存并运行此测试时,它会通过并Checkpoint!打印.每次,完全确定.我可以继续保存文件,它不断传递.(如果有帮助,Guard使用Spring并运行RSpec.)

但是当我使用RSpec命令运行测试时,它会失败.最奇怪的是,我原本预计会发生失败,因为匿名控制器设置会发生一些奇怪的事情并且无法找到路线,而是should测试失败了.当我以这种方式手动运行RSpec时,Checkpoint!永远不会打印,表明匿名控制器操作未被​​调用.但是因为我没有得到路由错误,所以必须调用一些控制器动作,但我不知道是什么,因为我甚至没有任何其他匿名控制器具有edit可能发生冲突的功能.我试过重启春天 - 没有运气.

关于我可能做错什么的任何想法?


编辑:

这是更多信息.我担心的格式是这样的:

module MyConcern
  extend ActiveSupport::Concern

  included do
    puts "Included!"

    private

    def concern_method
      puts "Method is called!"
      "expected_value"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

当测试失败时(从我明确地运行RSpec bundle exec …

ruby rspec ruby-on-rails guard

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

如何在C中将vector参数传递给OpenCL内核?

我无法将矢量类型(uint8)参数从C中的主机代码传递给OpenCL内核函数.

在主机中我得到了数组中的数据:

cl_uint dataArr[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
Run Code Online (Sandbox Code Playgroud)

(我的真实数据不仅仅是[1,8];这只是为了便于解释.)

然后我将数据传输到缓冲区以传递给内核:

cl_mem kernelInputData = clCreateBuffer(context,
    CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, sizeof(cl_uint)*8, dataArr, NULL);
Run Code Online (Sandbox Code Playgroud)

接下来,我将此缓冲区传递给内核:

clSetKernelArg(kernel, 0, sizeof(cl_mem), &kernelInputData);
Run Code Online (Sandbox Code Playgroud)

内核函数的签名看起来像这样:

kernel void kernelFunction(constant uint8 *vectorPtr)
Run Code Online (Sandbox Code Playgroud)

但是,内核似乎没有从指针获取正确的输入数据kernelInputData.当我从内核中传回值时,我看到vectorPtr指向具有这种结构的东西:( 1, 2, 3, 4, 5, ?, ?, ? )问号通常 在哪里,4293848814但有时候0.无论哪种方式,不是他们应该是什么.

我究竟做错了什么?


编辑:

我已经在主机端从使用数组切换到cl_uint8.我现在有:

cl_uint8 dataVector = { 1, 2, 3, 4, 5, 6, 7, 8 };

我将这个向量传递给内核,如下所示:

clSetKernelArg(kernel, 0, sizeof(cl_uint8), …

c vector parameter-passing opencl

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

在 Rails 中启用自定义格式化程序

我为 Rails 编写了一个自定义格式化程序:

\n\n
module Logging\n  class GeneralFormatter < Logger::Formatter\n    def call(severity, time, program_name, message)\n      ...\n    end\n  end\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

根据Rails 指南这个答案,我所要做的就是使用它

\n\n

config.log_formatter = Logging::GeneralFormatter.new

\n\n

不幸的是,这似乎不起作用\xe2\x80\x94我的自定义格式没有启动。但是,如果我也定义它:

\n\n
module Logging\n  class GeneralLogger < ActiveSupport::Logger\n    def initialize(*args)\n      super(*args)\n      @formatter = GeneralFormatter.new\n    end\n  end\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后我就可以按照config.logger = Logging::GeneralLogger.new需要格式化我的日志了。

\n\n

我的设置做错了什么log_formatter?当我想要的只是自定义格式时,我宁愿不定义自己的记录器。

\n\n
\n\n

编辑(回应评论,并通过更多的挖掘添加更多细节):

\n\n

我正在设置config.log_formatter并在开发中进行测试,并且它似乎在一定程度上application.rb起作用,因为该调用为我提供了我的自定义类。但这是我在打电话时看到的行为:Rails.logger.formatterRails.logger.warn("test")

\n\n
    \n
  1. test被打印到控制台(后跟换行符)。
  2. \n
  3. 然后call输入我的格式化程序的方法。
  4. \n
  5. 该方法的返回值call …

ruby-on-rails ruby-on-rails-4

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

Rails引擎ActiveRecord模型I18n

我有一个Rails应用程序,它依赖于一个单独的引擎(存储在其中vendor/engine_name).该引擎有一个ActiveRecord对象Bar:

module Foo
  class Bar < ActiveRecord::Base
    # has an attribute bar_attr
  end
end
Run Code Online (Sandbox Code Playgroud)

在该引擎的config/locales/en.yml文件中,我尝试过:

en:
  activerecord:
    attributes:
      bar_attr: "TEST"
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

en:
  activerecord:
    attributes:
      bar:
        bar_attr: "TEST"
Run Code Online (Sandbox Code Playgroud)

和:

en:
  activerecord:
    attributes:
      foo:
        bar:
          bar_attr: "TEST"
Run Code Online (Sandbox Code Playgroud)

但无论如何,当我Foo::Bar.human_attribute_name("bar_attr")从父应用程序调用时,我得到"Bar attr"(例如默认的人类属性名称).请注意,Foo::Bar.model_name.human当我尝试使用以下翻译时会出现同样的问题:

en:
  activerecord:
    models:
      ...
Run Code Online (Sandbox Code Playgroud)

我不确定应用程序/引擎结构是否相关,因为我en.yml在父应用程序的翻译文件中也尝试了上述三种格式,没有运气.

为了正确翻译这些模型名称/属性,我缺少什么?

ruby-on-rails rails-i18n rails-activerecord

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

没有从GhostScript PDF到PNG转换的输出文件

我有一个两页的PDF我试图转换为PNG文件.当我跑:

gs -sDevice=pngalpha -o=gs-output-%d.png -r400 test1-0.pdf
Run Code Online (Sandbox Code Playgroud)

我明白了:

GPL Ghostscript 9.07 (2013-02-14)
Copyright (C) 2012 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 2.
Page 1
%%BoundingBox: 35 35 577 757
%%HiResBoundingBox: 35.910001 35.910001 576.090022 756.090029
Page 2
%%BoundingBox: 35 35 577 757
%%HiResBoundingBox: 35.910001 35.910001 576.090022 756.090029
Run Code Online (Sandbox Code Playgroud)

然后......没什么.根本没有输出文件.我哪里错了?

linux ghostscript

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