小编rog*_*ack的帖子

规范在Rails 3.1中失败 - NoMethodError:调用私有方法'rand'

当我运行我的规范时,我突然得到一个奇怪的错误,这导致我的规格失败.这些规范之前找到了 - 但最近我们从Rails 3.0升级 - > Rails 3.1.看起来机械师在尝试为我的测试创建数据时遇到了一些问题,但我不明白为什么'rand'突然无法使用.

任何事情/提示将不胜感激.

这是我的蓝图中的一行:

Invoice.blueprint do
  invno { Faker::Base.bothify(["#######", "N######", "C######"].rand) }
  order_no { Faker::Base.numerify("N######") }
Run Code Online (Sandbox Code Playgroud)

以下是有关我的环境的一些信息 -

ruby -v:

ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
Run Code Online (Sandbox Code Playgroud)

rvm和rvm列表(显示我的gemset):

rvm 1.8.5 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]

=> ruby-1.9.2-p290 [ i386 ]
Run Code Online (Sandbox Code Playgroud)

这是发生的错误:

NoMethodError: private method `rand' called for ["#######", "N######", "C######"]:Array
/home/tom/work/ruby/litdistco-sales/spec/blueprints.rb:93:in `block (2 levels) in <top (required)>'
/home/tom/work/ruby/litdistco-sales/foreman/ruby/1.9.1/gems/machinist-1.0.6/lib/machinist.rb:77:in `generate_attribute_value'
/home/tom/work/ruby/litdistco-sales/foreman/ruby/1.9.1/gems/machinist-1.0.6/lib/machinist.rb:46:in `method_missing'
/home/tom/work/ruby/litdistco-sales/spec/blueprints.rb:93:in `block in <top (required)>'
/home/tom/work/ruby/litdistco-sales/foreman/ruby/1.9.1/gems/machinist-1.0.6/lib/machinist.rb:20:in `instance_eval'
/home/tom/work/ruby/litdistco-sales/foreman/ruby/1.9.1/gems/machinist-1.0.6/lib/machinist.rb:20:in `run'
/home/tom/work/ruby/litdistco-sales/foreman/ruby/1.9.1/gems/machinist-1.0.6/lib/machinist/active_record.rb:53:in `make'
/home/tom/work/ruby/litdistco-sales/spec/models/invoice_sales_tax_assignment_mixin_spec.rb:7:in `block …
Run Code Online (Sandbox Code Playgroud)

ruby specifications ruby-on-rails

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

Mysql用同一个表中的另一个行值更新一行

我有一张桌子.我想用同一个表中的第10行更新第5行.例如:

SlNo   Name Quali   Exp
1        x   B.E     2
2        y   BSC     3
3        Z   B.A     1.5
4        A   MSC     2
5        B   MBA     5
Run Code Online (Sandbox Code Playgroud)

在这里,我想用第5行的值更新第二行.

这是我目前的查询:

    UPDATE table 
      SET Name=(select Name from table where slNo='5'),
               Quali=(select Quali from  table where slNo='5'),
               Exp=(select Exp from table where slNo='5') 
      where slNo='3';
Run Code Online (Sandbox Code Playgroud)

这工作得很好......但如果有超过20列,以这种方式编写查询就变得很费力,因为对于每一列我必须包含另一个子查询...是否还有其他方法可以编写查询来更新整个行包含同一个表中另一行的所有值?

php mysql mysqli

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

如何使用HttpClient 4.3设置TCP_NODELAY和SO_KEEPALIVE

使用Apache HttpClient 4.3如何在不使用已弃用的HttpParams的情况下关闭Nagle的算法(TCP_NODELAY)并打开TCP保持活动数据包(SO_KEEPALIVE)?

注意:TCP keep-alive和HTTP keep-alive是两回事.

apache-httpclient-4.x

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

Cassandra DB:为什么不到查询失败?

我创建了一个KEYSPACE和一个TABLE,其中uuid列为主键,timestamp列使用索引.所有这些都成功如下图所示:

cassandra@cqlsh:my_keyspace> insert into my_test ( id, insert_time, value ) values ( uuid(), '2015-03-12 09:10:30', '111' );
cassandra@cqlsh:my_keyspace> insert into my_test ( id, insert_time, value ) values ( uuid(), '2015-03-12 09:20:30', '222' );
cassandra@cqlsh:my_keyspace> select * from my_test;

 id                                   | insert_time              | value
--------------------------------------+--------------------------+-------
 9d7f88bc-5cb9-463f-b679-fd66e6469eb5 | 2015-03-12 09:20:30+0000 |   222
 69579f6f-bf88-493b-a1d6-2f89fac25650 | 2015-03-12 09:10:30+0000 |   111

(2 rows)
Run Code Online (Sandbox Code Playgroud)

现在查询

cassandra@cqlsh:my_keyspace> select * from my_test where insert_time = '2015-03-12 09:20:30';

 id                                   | insert_time              | value
--------------------------------------+--------------------------+-------
 9d7f88bc-5cb9-463f-b679-fd66e6469eb5 | 2015-03-12 09:20:30+0000 | …
Run Code Online (Sandbox Code Playgroud)

cassandra

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

检测Java中的任何组合字符

我正在寻找一种方法来检测java字符串中的字符是否是"组合字符".例如,

String khmerCombiningVowel = 
 new String(new byte[]{(byte) 0xe1,(byte) 0x9f,(byte) 0x80}, "UTF-8"); // unicode 17c0
Run Code Online (Sandbox Code Playgroud)

代表结合高棉元音符号.我尝试过"\\p{InCombiningDiacriticalMarks}" 正则表达式,但它似乎不适用于这些特殊的组合字符.或者即使有一些所有unicode组合字符块的综合列表,我也可以为它们制作一个正则表达式?

java regex unicode combining-marks

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

Postgres,每天计算条目数,包括没有条目的天数

我有一个包含几个字段的表,但我只想计算每天该state字段被“拒绝”的条目数。该字段createdAt是带有时区的时间戳。

id | createdAt                  | state
------------------------------------------
1  | 2018-01-17 13:53:17.303+00 | rejected
2  | 2017-10-19 20:39:18.232+00 | approved
Run Code Online (Sandbox Code Playgroud)

所以我想计算两个时间戳之间每天的行数。没有任何条目的天数应返回 0 或 NULL。我创建的查询返回正确的时间序列,但不知何故我的连接或计数似乎很奇怪。它返回了数千个条目,但通常只有 0 到 20 个条目。(整个表少于 3800 个条目)

SELECT serie.day AS time, count(t."createdAt") AS created
FROM (
   SELECT generate_series(
       to_timestamp(1518248353)::date,
       to_timestamp(1521469246)::date, 
       interval '1 day'
   ) AS day
   FROM users t
) serie
LEFT JOIN users t ON t."createdAt"::date = serie.day::date 
     WHERE state ILIKE 'rejected'
GROUP  BY serie.day
ORDER  BY time;
Run Code Online (Sandbox Code Playgroud)

错误结果:

2018-02-10 00:00:00+00  11619
2018-02-11 …
Run Code Online (Sandbox Code Playgroud)

postgresql time-series grafana

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

Postgres 数学:运算符不存在:bigint == 整数

我有以下sql:

create table gps (laf int, "timestamp" timestamp);
select * from 
  (select *, row_number() over() from gps) as yo
where row_number == 10
Run Code Online (Sandbox Code Playgroud)

但它会产生这样的响应:

ERROR: operator does not exist: bigint == integer Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts. Position: 84
Run Code Online (Sandbox Code Playgroud)

打字似乎没有帮助。如何将 row_number (bigint)与数字进行比较?

postgresql

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

从dao层返回的链接hashmap中获取最后一个元素?

我有从db返回的LinkedHashMap.从这张地图我需要得到确切的最后一个元素(键).如果我使用keySet方法获取所有键,则返回Set of keys但Set不保证顺序.我需要从db返回的链接hashmap中取出最后一个键.我怎样才能做到这一点 ?

下面是我如何从数据库中获取数据的代码.

LinkedHashMap<String,String> map = someDao.getMap(String input);
Run Code Online (Sandbox Code Playgroud)

从这张地图我需要采取最后一个元素.

谢谢!

java linkedhashmap

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

如何使用导入另一个架构文件的架构文件验证 XML?

我想根据此模式(即在 zip 中)验证 XML 文件;它导入另外两个 XSD 文件。

   <import namespace="http://www.w3.org/2000/09/xmldsig#" 
       schemaLocation="xmldsig-core-schema.xsd"/>
   <import namespace="http://www.w3.org/2001/04/xmlenc#" 
       schemaLocation="xenc-schema.xsd"/>
Run Code Online (Sandbox Code Playgroud)

这两个文件也可以在这里找到:

在验证时,我收到此错误:

Src-resolve: Cannot Resolve The Name 'xenc:EncryptedData' To A(n) 'element Declaration' Component.
Run Code Online (Sandbox Code Playgroud)

我的验证/解组代码如下所示(使用 moxy 作为 JAXB 提供程序):

jaxbContext = JAXBContext.newInstance(type.getRequestType().getPackage().getName());
Unmarshaller um = jaxbContext.createUnmarshaller();

SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new StreamSource(this.getClass().getResourceAsStream("/xsd/" + type.getXsdName())));
um.setSchema(schema);

root = um.unmarshal(new StreamSource(new ByteArrayInputStream(xmlData)), type.getRequestType());
Run Code Online (Sandbox Code Playgroud)

在您询问类型有什么作用之前:我编写了可以从http://www.forum-datenaustausch.ch/导入所有类型发票的代码。但是 4.3 及更高版本使用了两个额外的架构文件。如何验证 XML 文件?

java xml xsd xsd-validation moxy

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

Android Webview Javascript注入

我正在尝试将javascript注入我在webview中加载的页面.例如,我通过在自定义WebViewClient类中覆盖'onPageFinished'将值放入给定的文本框中:

public class MyAppWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageFinished(WebView view, String url)
    {
        super.onPageFinished(view, url);
        view.loadUrl("javascript:" +
            "document.getElementById('elid').value = 'texthere';");
    }
}
Run Code Online (Sandbox Code Playgroud)

这在浏览网站和单击链接时正常工作,但是当我按下后退按钮时,java/javascript似乎没有正确执行(文本框没有正确填写.

按下后退按钮时会调用onPageFinished函数,但它似乎是在当前页面上执行javascript,而不是在返回的页面上执行.

android webview

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

maven 创建阴影 jar 时出错:打开 zip 文件时出错

我正在尝试使用以下命令构建我的 dropwizard 项目:

mvn package
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.3:shade (default) on project rest-api: Error creating shaded jar: error in opening zip file /Users/ldelaney/.m2/repository/mysql/mysql-connector-java/5.1.36/mysql-connector-java-5.1.36.jar
Run Code Online (Sandbox Code Playgroud)

我检查过,罐子就在那里,就在maven正在寻找的地方。

我也尝试过把它吹走,然后运行:

mvn clean
mvn package
Run Code Online (Sandbox Code Playgroud)

但错误不会消失。我的 IDE 没有显示任何错误。

另外,这是我对 POM 的依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.36</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这是整个 POM 文件。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.company.test</groupId>
<artifactId>rest-api</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
    <dropwizard.version>1.0.5</dropwizard.version>
    <mongodriver.version>3.4.2</mongodriver.version>
    <mysqlConnector.version>5.1.36</mysqlConnector.version>
    <log4j.version>1.2.17</log4j.version>
</properties>

<dependencies>

    <!-- Drop Wizard -->
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-core</artifactId>
        <version>${dropwizard.version}</version>
    </dependency>
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-auth</artifactId>
        <version>${dropwizard.version}</version>
    </dependency>
    <dependency>
        <groupId>io.dropwizard</groupId> …
Run Code Online (Sandbox Code Playgroud)

mysql-connector maven

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

如何将原型div选择器作为对象

我是原型/ jquery的菜鸟,当我尝试在chrome控制台中执行此操作时,在一个名为"contains_filter_select"的div页面上:

>> $("contains_filter_select" )
<div id=?"contains_filter_select">?…?</div>?
Run Code Online (Sandbox Code Playgroud)

但它似乎不是一个对象?

>> $("contains_filter_select").text("abc")
TypeError: Object #<HTMLDivElement> has no method 'text'

 $("#contains_filter_select")
 null
Run Code Online (Sandbox Code Playgroud)

我觉得我在这里错过了一些微不足道的事情,有人能指出我正确的方向吗?

jquery prototypejs

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

一些问题涉及鱼壳的自动完成

在鱼壳中键入命令的开头时,最近(或经常?)可能完成的命令以深灰色显示.

说我输入:

fish
Run Code Online (Sandbox Code Playgroud)

深灰色:_config附加.

在这个时候,我还没有明白,我将要做什么.因此,TAB关键显示了所有可能完成的' fish''

我可以继续输入字符,直到它清楚我想要的东西.例如:_con

现在只有一个选项可以完成.所以我可以点击tab键查看fish_config.但是:这没有以某种方式表明.换句话说:输入fish_con之后没有什么能告诉我我不必继续输入.是这样的吗?这不是非常有用吗?

第二个问题:灰色人物的实际意义是什么?如果有办法接受这个建议,我只会理解他们的目的.键入后f,我希望一个关键组合立即完全完成灰色的建议:fish_config.

更好的选择是让灰色字母循环显示所有选项,或者根据历史记录完成可能的完成.

shell fish

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