小编gmi*_*ile的帖子

彩色Ruby输出

是否有宝石为终端输出执行背景和前景文本着色?

我记得,在编写Pascal时,我们都习惯使用textcolor(...)程序来使我们的小型教育程序看起来更漂亮和表现.

Ruby中有类似的东西吗?

ruby colors console-application

263
推荐指数
11
解决办法
13万
查看次数

获取数组元素的索引比O(n)更快

鉴于我有一个巨大的数组,以及它的值.我想得到数组中的值的索引.还有其他方式,而不是打电话Array#index来获得它吗?问题来自需要保持真正庞大的阵列和Array#index大量的时间.

经过几次尝试后,我发现通过存储带有字段而不是值本身的结构来缓存元素内部的索引(value, index)会给性能带来巨大的进步(20倍的胜利).

我仍然想知道是否有更方便的方法来查找en元素的索引而不进行缓存(或者有一个很好的缓存技术可以提高性能).

ruby arrays indexing performance

103
推荐指数
4
解决办法
11万
查看次数

在Ruby中创建二维数组和访问子数组

我想知道是否有可能创建一个二维数组并快速访问其中的任何水平或垂直子数组?

我相信在以下情况下我们可以访问水平子数组:

x = Array.new(10) { Array.new(20) }

x[6][3..8] = 'something'
Run Code Online (Sandbox Code Playgroud)

但据我了解,我们无法像这样访问它:

x[3..8][6]
Run Code Online (Sandbox Code Playgroud)

我怎样才能避免或破解这个限制?

ruby arrays multidimensional-array

66
推荐指数
5
解决办法
14万
查看次数

PG COPY错误:整数的输入语法无效

为我运行错误消息的COPY结果ERROR: invalid input syntax for integer: "".我错过了什么?

我的/tmp/people.csv档案:

"age","first_name","last_name"
"23","Ivan","Poupkine"
"","Eugene","Pirogov"
Run Code Online (Sandbox Code Playgroud)

我的/tmp/csv_test.sql档案:

CREATE TABLE people (
  age        integer,
  first_name varchar(20),
  last_name  varchar(20)
);

COPY people
FROM '/tmp/people.csv'
WITH (
  FORMAT CSV,
  HEADER true,
  NULL ''
);

DROP TABLE people;
Run Code Online (Sandbox Code Playgroud)

输出:

$ psql postgres -f /tmp/sql_test.sql
CREATE TABLE
psql:sql_test.sql:13: ERROR:  invalid input syntax for integer: ""
CONTEXT:  COPY people, line 3, column age: ""
DROP TABLE
Run Code Online (Sandbox Code Playgroud)

琐事:

  • PostgreSQL 9.2.4

csv postgresql import copy

41
推荐指数
6
解决办法
11万
查看次数

Capybara:日志中的异常跟踪

在capybara中运行集成测试时,让app引发异常(500错误;在浏览器中呈现),test.log文件中没有堆栈跟踪.这是我在那里看到的唯一一条线:

Completed 500 Internal Server Error in 25ms
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?test.log在集成测试期间如何使堆栈跟踪出现?

ruby-on-rails exception stack-trace capybara

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

随机素数

如何快速生成一个随机素数,肯定是1024位长?

random algorithm primes numbers

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

原始数据库在Rails中查询

我试图在rails中运行以下原始查询,只是为了看到它失败:

query   = 'SELECT * FROM users WHERE id IN ($1);'
results = ActiveRecord::Base.connection.exec_query(query, "My query", [ [1,2] ]);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我得到的错误从这开始:

Could not log "sql.active_record" event. NoMethodError: undefined method `binary?' for 1:Fixnum
Run Code Online (Sandbox Code Playgroud)

显然,我在[1, 2]某种程度上滥用了绑定参数,但我自己找不到合适的例子.

PS这是最小的失败示例,派生自更高级的查询,无法转换为ActiveRecord调用链.换句话说 - 在构建查询时我不能依赖Arel.

PPS我正在使用rails 4.0.1postgresql 9.3

sql postgresql ruby-on-rails pg ruby-on-rails-4

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

在Rails中使用datetime

如何正确地从datetime对象中提取时间(,准确地说)是否有/不受影响?如何提取,和值?如何通过自定义模式提取(是否可能)?post.created_atTimeZonedaymonthyearday/month/year

ruby time datetime ruby-on-rails

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

如何处理已发布的持续卷?

TL; DR.关于如何在删除PVC后访问数据,以及为什么PV在删除PVC后不会消失,我很遗憾.

我正在采取的步骤:

  1. 手动在GCE中创建了一个磁盘:

    gcloud compute disks create --size 5Gi disk-for-rabbitmq --zone europe-west1-b
    
    Run Code Online (Sandbox Code Playgroud)
  2. 跑:

    kubectl apply -f /tmp/pv-and-pvc.yaml
    
    Run Code Online (Sandbox Code Playgroud)

    使用以下配置:

    # /tmp/pv-and-pvc.yaml
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-for-rabbitmq
    spec:
      accessModes:
      - ReadWriteOnce
      capacity:
        storage: 5Gi
      gcePersistentDisk:
        fsType: ext4
        pdName: disk-for-rabbitmq
      persistentVolumeReclaimPolicy: Delete
      storageClassName: standard
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-for-rabbitmq
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 5Gi
      storageClassName: standard
      volumeName: pv-for-rabbitmq
    
    Run Code Online (Sandbox Code Playgroud)
  3. 手动删除了一个PVC(在高级别:我在这里模拟一个灾难性的场景,比如意外删除或错误配置一个helm版本):

    kubectl delete pvc pvc-for-rabbitmq
    
    Run Code Online (Sandbox Code Playgroud)

此时我看到以下内容:

$ kubectl get pv
NAME              CAPACITY   ACCESS MODES …
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage google-cloud-platform kubernetes google-kubernetes-engine

11
推荐指数
4
解决办法
7939
查看次数

Rails:智能文本截断

我想知道是否有一个插件可以实现一种智能截断.我需要用一个单词或一个句子的精度来截断我的文本.

例如:

Post.my_message.smart_truncate(
    "Once upon a time in a world far far away. And they found that many people
     were sleeping better.", :sentences => 1)
# => Once upon a time in a world far far away.
Run Code Online (Sandbox Code Playgroud)

要么

Post.my_message.smart_truncate(
    "Once upon a time in a world far far away. And they found that many people
     were sleeping better.", :words => 12)
# => Once upon a time in a world far far away. And they ...
Run Code Online (Sandbox Code Playgroud)

ruby text truncate ruby-on-rails

10
推荐指数
2
解决办法
4600
查看次数