小编new*_*ere的帖子

如何将Vim的本地领导者设置为反斜杠?

这适用于将本地领导者设置为减号键:

:let mapleader =" - "

我无法弄清楚如何将其设置为反斜杠.我试过以下但无济于事:

:let mapleader ="\"

:let mapleader ="\"

:让mapleader = \

任何帮助是极大的赞赏.

vim

4
推荐指数
2
解决办法
7771
查看次数

尝试使用CASE语句更新多行时,Postgres会挂在大表上

我正在尝试使用postgres更新多行,我正在使用此代码:

UPDATE foobar SET column_a = CASE
  WHEN column_b = '123' THEN 1
  WHEN column_b = '345' THEN 2
END;
Run Code Online (Sandbox Code Playgroud)

如果我创建一个新表,它可以完美地运行,但是当在一个有800万行的大表上运行它时,它会无限期地挂起.我先在Admineer(Web界面)和控制台中尝试过.

但是这很好用:

UPDATE foobar SET column_a=1 WHERE column_b='123';
Run Code Online (Sandbox Code Playgroud)

我对在我的代码中实现这种方法犹豫不决,因为我将同时拥有数千个更新,并且更愿意将它们放在一个语句中.关于为什么第一个例子会挂起postgres的任何想法,第二个例子可以正常工作?我只是双重检查,我没有在桌子上应用规则.

sql postgresql case sql-update

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

为什么Ruby class_eval从范围中删除常量?

我用一个常量和一个方法创建了一个类:

class A
  FOO = 'hello'
  def bar
    puts FOO
  end
end

A.new.bar
=> 'hello'
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作.但是当我这样做时:

A.class_eval do
  def bar
    puts FOO
  end
end

A.new.bar
NameError: uninitialized constant FOO
Run Code Online (Sandbox Code Playgroud)

奇怪...为了解决这个问题,我正在做:

A.class_eval do
  def bar
    puts self.class::FOO
  end
end
Run Code Online (Sandbox Code Playgroud)

为什么会出现这种情况有什么好的解释?

ruby

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

在 Postgresql 中查找最近的不同记录并按 created_at 排序

我认为这很容易找到解决方案,但我找不到与我想要做的事情相匹配的问题。

这是我希望看到的(此查询不起作用):

SELECT DISTINCT ON (conversation_id) 
  *
FROM messages
ORDER BY created_at DESC
Run Code Online (Sandbox Code Playgroud)

换句话说,返回具有最新 created_at 日期的完整行,其中 session_id 是不同的,然后按 created_at DESC 排序。

我在下面写了一个查询,它完全符合我的要求,但我认为我过于复杂了。我还假设最近的记录将具有最高的 ID,并在子查询中按 ID 排序,而不是“created_at”(它返回与 created_at DESC 相同的顺序,但不太友好)。

SELECT 
  m.*
FROM (
  SELECT 
    DISTINCT ON (conversation_id) conversation_id,
    id
  FROM messages
  ORDER BY conversation_id, id DESC
) as t
INNER JOIN messages as m
  ON t.id = m.id
ORDER BY t.id DESC
Run Code Online (Sandbox Code Playgroud)

制作此查询的更简单版本的任何帮助都会很棒。


添加示例以进行说明

如果消息表如下所示:

id, conversation_id, created_at, subject
1, 2,  "2014-10-21 00:01:00", "subject 1"
2, 43, "2014-10-21 00:02:00", "subject 2" …
Run Code Online (Sandbox Code Playgroud)

sql postgresql greatest-n-per-group

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

在Ruby脚本中需要Ruby Gem会破坏Cron作业执行

我正在尝试使用Gems运行一个cron作业.我已经通过RVM安装了ruby,当我需要一个gem时它打破了cron的工作.我试过要求两个完全不同的宝石,PG/Pry,当我需要时,cronjob没有完成.这是正常工作的"测试代码":

open('/home/log.log', 'a') do |f|
  f.puts Time.now.to_s
end
Run Code Online (Sandbox Code Playgroud)

以下是我设置cronjob的方法:

* * * * * /usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby /home/test1.rb
Run Code Online (Sandbox Code Playgroud)

我每分钟都能看到新的输出.当我在顶部添加一个require gem行时,它会中断,但只有在通过cron运行时:

require 'pg'

open('/home/log.log', 'a') do |f|
  f.puts Time.now.to_s
end
Run Code Online (Sandbox Code Playgroud)

cronjob运行(我可以看到它在sys日志中执行),但从未完成(没有输出进入文本文件).我在两个独立的服务器上尝试过这个,一个是Debian,一个是CentOS,两者都有同样的问题.奇怪的是,这只会影响cron作业,如果我从控制台运行相同的ruby文件:/home/test1.rb它会正常工作.

任何帮助都会很棒.

ruby cron rubygems rvm

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

如何将键映射到 Nerdtree 函数,例如 NERDTree-s / NERDTreeMapOpenVSplit

我正在尝试在书呆子树中重新绑定(将键映射到)像“i”这样的命令,这会打开一个水平分割。

有没有办法做到这一点,或者我只是坚持使用 nerdtree 的默认绑定?我在文档中找不到任何关于此的信息,并且我已经进行了大量的谷歌搜索,但我不知所措。

注意:我相信绑定是在这个文件中设置的,我只是不知道如何覆盖它们或调用它们引用的函数。

任何帮助,将不胜感激。

vim nerdtree

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

如何计算Ruby数组中所有值的总和

我有一个数组如下:

a = [1,2,5,8]

我想计算所有添加(或相乘)元素的值.

ruby arrays sum

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

从ruby hash获取所有密钥

在PHP中你可以做到 $associative_array_keys = array_keys($associative_array)

是否有一个函数来获取ruby中的所有哈希键?

我正在映射我的哈希并返回键: my_hash_keys = my_hash.map{|k,v| k}

有更好的解决方案吗?

ruby

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

标签 统计

ruby ×4

postgresql ×2

sql ×2

vim ×2

arrays ×1

case ×1

cron ×1

greatest-n-per-group ×1

nerdtree ×1

rubygems ×1

rvm ×1

sql-update ×1

sum ×1