小编eag*_*poo的帖子

字符串插值与字符串中的实际%

处理这个问题的正确方法是什么?

"Hi %s, today is %s so you get 10% OFF!" % ['Joe', 'Monday']
# => ArgumentError: malformed format string - %O
Run Code Online (Sandbox Code Playgroud)

我不能使用普通%{keyname}或者#{code}因为我正在为网址解析字符串并将其剥离,所以我可以用不同的格式(有/无协议,缩短,全长等)将它们粘在一起.所以替换的数量是未知的,他们没有名字.它们只是一系列网址.

我也试过逃避%:

"Hi %s, today is %s so you get 10\% OFF!" % ['Joe', 'Monday']
# => ArgumentError: malformed format string - %O
Run Code Online (Sandbox Code Playgroud)

但得到完全相同的结果.

ruby string-formatting

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

package.json启动脚本,babel-node:在heroku部署中找不到

当我运行heroku local或当我在npm start本地执行时,我的应用程序构建并运行良好.但是,当我部署到heroku时,应用程序崩溃,说它无法找到babel-node.

这是日志输出:

2016-04-21T22:20:44.320025+00:00 heroku[api]: Deploy 5d9a9da by eagsalazar@gmail.com
2016-04-21T22:20:44.320084+00:00 heroku[api]: Release v9 created by eagsalazar@gmail.com
2016-04-21T22:20:44.542062+00:00 heroku[slug-compiler]: Slug compilation started
2016-04-21T22:20:44.542069+00:00 heroku[slug-compiler]: Slug compilation finished
2016-04-21T22:20:44.501025+00:00 heroku[web.1]: State changed from crashed to starting
2016-04-21T22:20:46.278065+00:00 heroku[web.1]: Starting process with command `npm start`
2016-04-21T22:20:50.467407+00:00 app[web.1]:
2016-04-21T22:20:50.467434+00:00 app[web.1]: > qc-server@1.0.0 start /app
2016-04-21T22:20:50.467435+00:00 app[web.1]: > babel-node index.js
2016-04-21T22:20:50.467436+00:00 app[web.1]:
2016-04-21T22:20:50.479490+00:00 app[web.1]: sh: 1: babel-node: not found
2016-04-21T22:20:50.521936+00:00 app[web.1]:
2016-04-21T22:20:50.538822+00:00 app[web.1]: npm ERR! Linux 3.13.0-79-generic
2016-04-21T22:20:50.539334+00:00 app[web.1]: npm …
Run Code Online (Sandbox Code Playgroud)

heroku node.js package.json

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

在JavaScript中确定照片的方向?

我们正在使用FileReader从iPhone上拍摄的照片到浏览器中获取图像.然后我们用drawImage()它将图像绘制到canvas.问题是在iPhone显示屏上拍摄的照片在页面上旋转.我们无法在任何Android设备上重现这一点.

我们可以canvas很容易地旋转图像,但我们如何确定所需的旋转?我们尝试了一些用于JavaScript的EXIF读取库(exif.js)但无法成功读取方向.

javascript iphone canvas ios html5-canvas

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

如何使用rails和mongoid通过"计数"关联来查找记录?

有了这些型号:

class Week
  has_many :proofs
end
class Proof
  belongs_to :week
end
Run Code Online (Sandbox Code Playgroud)

我想做的事情如下:

Week.where(:proof.count.gt => 0)
Run Code Online (Sandbox Code Playgroud)

仅查找具有多个证明的周数.

有一个答案似乎可以解决这个问题:

rails rails可以过滤给定字段的关联类的数量

但是在这个例子中,由于ids与证明一起存储,因此在周中没有诸如proof_ids之类的属性.这不适用于例如:

Week.where(:proof_ids.gt => 0)
Run Code Online (Sandbox Code Playgroud)

这个查询怎么可能?概念上很简单,但我无法弄清楚如何用mongo或mongoid做到这一点.

同样,我想按照证明的数量排序,例如:

Week.desc(:proofs.size)
Run Code Online (Sandbox Code Playgroud)

但这也行不通.

我确实意识到反缓存是我的两个具体问题的选项,但我也希望能够进行查询.

在此先感谢您的帮助.

ruby-on-rails has-many mongoid

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

Rails 3 i18n如何*不*逃避换行

我在我的.text.haml邮件程序模板中使用i18n,我想在en.yml中有一个带换行符的字符串但是t()总是转义它们,即使我使用html_safe或后缀为_html的键名.

有没有办法做到这一点??

p3_html: >
    You love monkeys:
     \n- You look like one
     \n- Your smell like one
     \n- Your account has been flagged
Run Code Online (Sandbox Code Playgroud)

在我的html.haml模板中:

!= t('emails.post.twitter_forbidden.p3_html').html_safe
Run Code Online (Sandbox Code Playgroud)

无论什么被逃脱.我不能使用%br或其他任何东西,因为这些是文本模板.我知道我可以将它分成4个i18n字符串,但那真的很难过.

顺便说一句,我检查过,它是i18n逃避,而不是haml.

haml ruby-on-rails internationalization

7
推荐指数
2
解决办法
4277
查看次数

用mongoid重命名模型

我知道正常的迁移我可以做rename_table但是在mongoid我不能确定如何继续.

我已将所有模型/关系/路由/控制器/等都重命名,但我只需要知道如何移动数据本身.

这是嵌入式embeds_one文件btw.

更新:

看起来简单地做:

Model.all.each {|m| m.rename :old_embedded_association_name, :new_embedded_association_name }
Run Code Online (Sandbox Code Playgroud)

作品.听起来很健康吗?

ruby ruby-on-rails mongoid

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

在struct中由指针引用的ruby ffi调用函数?

我正在尝试使用libfluidsynth和ruby ffi,需要迭代声音来获取所有乐器.具体来说,_fluid_sfont_t结构具有我需要调用的iteration_start和iteration_next引用:

http://fluidsynth.sourceforge.net/api/struct__fluid__sfont__t.html

void (*iteration_start)(fluid_sfont_t* sfont);
Run Code Online (Sandbox Code Playgroud)

我在ffi/ffi文档中看到如何引用结构的成员,其中这些成员是普通类型,我看到如何在C中设置回调以指向ruby Procs.但是我需要调用一个结构上的函数指针引用的函数.

如何才能做到这一点?

ruby ffi ruby-ffi

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

S3 下载文件名中带有逗号的图像会导致“net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION”

我存储了用户在 AWS S3 上上传的图像。当用户在浏览器中查看这些图像时,他们有指向我的应用程序的 url,我在那里使用 s3.getSignedUrl 重定向到一个临时签名的 url。99% 的情况下,一切都很好。

问题是,用户偶尔会上传文件名中包含逗号的图像。当他们然后尝试在 Chrome(并且只有 chrome)中查看该图像时,我收到此错误

net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION
Run Code Online (Sandbox Code Playgroud)

我发现这是逗号,因为其他几个人也有类似的问题,他们通过设置 content-disposition 标头解决了这个问题。

使用 s3 和getSignedUrl,我认为这可以通过在 params 参数中设置 ReponseContentDisposition 属性来完成。具体的解决方法是在内容处置中正确引用文件名,或者只是将文件名设置为根本不包含逗号的其他内容。

然而,那个计划对我不起作用。有人对我可能出错的细节有任何想法吗?

我的服务器是 Node.js。这是执行重定向的 js(就像我说的通常效果很好)

function tempRedirect(req, res) {
    var filename = req.params[0];
    var params = {
        Bucket: S3_BUCKET,
        ResponseContentDisposition: 'inline; filename=' + filename.replace(/,/, '_'),
        Key: checkTrailingSlash(getFileKeyDir(req)) + filename
    };
    var s3 = new aws.S3(s3Options);
    s3.getSignedUrl('getObject', params, function(err, url) {
        res.redirect(url);
    });
};
Run Code Online (Sandbox Code Playgroud)

javascript amazon-s3 amazon-web-services node.js

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

s3.getSignedUrl ResponseContentDisposition参数不起作用

我成功生成了一个签名的URL,然后可以在有限的时间内使用该URL从s3存储桶下载资源。但是,我试图在params中使用ResponseContentDisposition属性,如此处所述:

  1. http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getSignedUrl-property
  2. http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property

我不确定我是否做错了,但是由于某些原因没有设置标题。例如,如果我使用url,则从s3.getSignedUrl中获取:

curl -i "https://foo-dev.s3.amazonaws.com/images/foo.jpg?AWSAccessKeyId=AKIAICBHUC26S6B446PQ&Expires=1468359314&Signature=EeBqx1G83oeusarBl2KUbbCCBgA%3D&response-content-disposition=attachment%3B%20filename%3Ddata.jpg"

标头是:

x-amz-id-2: SG9rjYQCcuqgKfjBmMbDQC2CNLcnqBAFzP7zINa99VYUwNijPOm5Ea/5fllZ6cnt/Qti7e26hbE=
x-amz-request-id: 2670068008525B1D
Date: Tue, 12 Jul 2016 21:26:16 GMT
Content-Disposition: inline; filename=foo.jpg
Last-Modified: Tue, 12 Jul 2016 00:47:23 GMT
ETag: "2a8e36651b24769170f4faa429f40f54"
Accept-Ranges: bytes
Content-Type: image/jpeg
Content-Length: 43373
Server: AmazonS3
Run Code Online (Sandbox Code Playgroud)

我使用这样的javascript s3 sdk进行设置:

function tempRedirect(req, res) {
    var filename = req.params[0];
    var contentDisposition = 'attachment; filename=data.jpg';
    var params = {
        Bucket: S3_BUCKET,
        ResponseContentDisposition: contentDisposition,
        Key: checkTrailingSlash(getFileKeyDir(req)) + filename
    };
    var s3 = new aws.S3(s3Options);
    s3.getSignedUrl('getObject', params, function(err, url) {
        res.redirect(url);
    }); …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services http-headers node.js

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

Rails 5.1 webpacker"导入"一个.js.erb文件?

app/javascript/packs/application.js我正在尝试import "../foo"文件的位置foo.js.erb.Webpacker和yarn适用于application.js中的其他导入,例如import "../bar"当该文件存在bar.js但是如果我尝试使用.js.erb文件时,我从webpack-dev-server获得此错误:

ERROR in ./app/javascript/packs/application.js
Module not found: Error: Can't resolve '../foo' in '/Users/blah/backlot/projects/test/app/javascript/packs'
 @ ./app/javascript/packs/application.js 3:0-27
 @ multi (webpack)-dev-server/client?http://localhost:8080 ./app/javascript/packs/application.js
Run Code Online (Sandbox Code Playgroud)

我确实安装了rails-erb-loader,如果我查看webpacker配置,那么erb加载器正在评估并且看起来对我来说虽然我没有触及任何其他的,除了运行rails webpacker:install生成该配置.

ruby-on-rails ruby-on-rails-5.1 webpacker

5
推荐指数
3
解决办法
3447
查看次数

es6从父类的静态方法访问子类的静态方法?

我想做这个:

class Parent {
    static myMethod1(msg) {
    // myMethod2 is undefined
    this.constructor.myMethod2(msg);
  }
}

class Child extends Parent {
  static myMethod2(msg) {
    console.log('static', msg);
  }
}

Child.myMethod1(1);
Run Code Online (Sandbox Code Playgroud)

但这不起作用。这可以通过其他方式实现吗?我不想在 Parent 中对 Child.myMethod2 进行硬编码,我知道这会起作用,因为我希望随机子类能够定义/覆盖静态方法,但在不事先知道哪个类是子类的情况下从父类调用该方法。

ecmascript-6 es6-class

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

来自 NSData 的 Objective-c sscanf

我有一个 BTLE 设备,它向我发送字节,其中一些我需要组成一个 32 位有符号整数,移位,然后解释。我正在使用 xcode 6.1。

我遇到的问题是简单地使用 sscanf 将字节转换为 int32_t ,这有时有效,有时无效。我不是 obj-c 专家,不确定这是否是正确的方法,我使用的 strtol 同样不起作用。

整个功能如下:

- (double) parseMV2: (NSData*) data {
  NSData* slicedData = [data subdataWithRange:NSMakeRange(2, 4)];
  const char *bytes = [slicedData bytes];
  int32_t value;
  double mV = 0;

  int sscanf_result = sscanf(bytes, "%4x", &value);

  if (1 == sscanf_result) {
    value <<= 3; // discard the 3 most significant bits as they are not part of the value this also brings the sign bit to the most significant …
Run Code Online (Sandbox Code Playgroud)

scanf objective-c bit-shift

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