小编Ric*_*h_F的帖子

过滤以从数组中排除元素

试图从数组中过滤一些条目.它不能保证它们在主数组中,因此我正在通过迭代进行测试.

total = ['alpha', 'bravo', 'charlie', 'delta', 'echo']
hide = ['charlie', 'echo']

pick = []
for i in total
  if !hide.include?(i)
    puts i
    pick.push(i)
  end
end
puts pick
Run Code Online (Sandbox Code Playgroud)

这不起作用.有没有更好的方法来提供这种过滤器?

ruby arrays

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

Postgresql使用时区UTC创建表字段名称时间戳

使用带有UTC时区的字段创建表的语法是什么?

我有这些领域:

(id INT PRIMARY KEY NOT NULL, 
 bravo timestamp without time zone DEFAULT now(),
 charlie timestamp with time zone UTC DEFAULT now()
)
Run Code Online (Sandbox Code Playgroud)

这个名字的最后一个字段charlie不是出于某种原因.我希望它很简单,因为它只是告诉它有一个时区,然后在那里推动UTC,并now()在输入过程中弄清楚db .

postgresql timestamp create-table

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

CentOS 7 pg_ctl:无法访问目录“/var/lib/pgsql/data”:权限被拒绝

PostgreSQL 10.6 和 CentOS 7

pg_ctl status
pg_ctl: could not access directory "/var/lib/pgsql/data": Permission denied`
Run Code Online (Sandbox Code Playgroud)

鉴于拥有所有权,无法pg_ctl访问此内容? /var/lib/pgsql/datapostgres:postgres

drwx------   3 postgres postgres   94 Nov 14 06:43 pgsql
Run Code Online (Sandbox Code Playgroud)

如何在不产生漏洞的情况下修复此问题?为什么这会抛出错误?

附加信息(编辑):

su - postgres
cd /var/lib
/var/lib/pgsql: drwx------  3 postgres postgres   94 Nov 14 06:43 pgsql
/var/lib/pgsql/10: drwx------ 4 postgres postgres  33 Nov 14 06:38 10
/var/lib/pgsql/10/data:  drwx------ 20 postgres postgres 4096 Nov 15 03:47 data
Run Code Online (Sandbox Code Playgroud)

postgresql centos7 pg-ctl

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

"\ t"上的Ruby字符串拆分丢失"\n"

\ tTrying以拆分此制表符分隔的数据集:

171 1000    21  
269 1000    25  
389 1000    40  
1020    1-03    30  1
1058    1-03    30  1
1074    1-03    30  1
200 300     500
Run Code Online (Sandbox Code Playgroud)

(为清楚起见:)

171\t1000\t21\t\n   
269\t1000\t25\t\n   
389\t1000\t40\t\n
1020\t1-03\t30\t1\n
1058\t1-03\t30\t1\n
1074\t1-03\t30\t1\n
200\t300\t\t500\n

a = text.split(/\n/)
a.each do |i|
  u = i.split(/\t/)
  puts u.size
end

==>
3
3
3
4
4
4
4
Run Code Online (Sandbox Code Playgroud)

\ t \n组合似乎削掉了最后一个\ t,我需要进一步输入.我怎么能绕过这个?干杯

编辑:这是我所期待的:

4
4
4
4
4
4
4
Run Code Online (Sandbox Code Playgroud)

ruby arrays split

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

Ruby 2.7.4 网络持续警告

ruby在 a 中crontab以及在终端中手动运行脚本时,我收到重复的警告。

/Users/rich/.rbenv/versions/2.7.4/lib/ruby/2.7.0/net/protocol.rb:66: warning: already initialized constant Net::ProtocRetryError
/Users/rich/.rbenv/versions/2.7.4/lib/ruby/gems/2.7.0/gems/net-protocol-0.1.2/lib/net/protocol.rb:68: warning: previous definition of ProtocRetryError was here
/Users/rich/.rbenv/versions/2.7.4/lib/ruby/2.7.0/net/protocol.rb:206: warning: already initialized constant Net::BufferedIO::BUFSIZE
/Users/rich/.rbenv/versions/2.7.4/lib/ruby/gems/2.7.0/gems/net-protocol-0.1.2/lib/net/protocol.rb:208: warning: previous definition of BUFSIZE was here
/Users/rich/.rbenv/versions/2.7.4/lib/ruby/2.7.0/net/protocol.rb:503: warning: already initialized constant Net::NetPrivate::Socket
/Users/rich/.rbenv/versions/2.7.4/lib/ruby/gems/2.7.0/gems/net-protocol-0.1.2/lib/net/protocol.rb:504: warning: previous definition of Socket was here
Run Code Online (Sandbox Code Playgroud)

我已将脚本更改为 usenet/httpFaraday,我假设后者需要第一个。最近和很久以前就看到过这种行为,这是宝石的重新加载,如果我是正确的,net这是宝石的一部分。core我只是不确定为什么要重新加载。

由于几个原因,我习惯于rbenv兼顾版本,这一点不会改变。ruby我的 shebang 是,#!/Users/rich/.rbenv/shims/ruby但我的ruby版本有点不同:

$ which ruby
==> /Users/rich/.rbenv/versions/2.7.4/bin/ruby

$ ruby -v
==> Ruby version: …
Run Code Online (Sandbox Code Playgroud)

ruby net-http rbenv

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

Ruby对象使用可选参数初始化

如何编写initalizer()方法来形成实例变量(空或其他),然后迭代一组args来设置实例变量?

这就是我的想法:

def initialize(*p)
  @sid                      = "123asdf654"
  @token                    = "abc123"
  @bert                     = "1192875119"
  @me                       = "4165551212"
  @media_url                = ""
  @message                  = ""

  args.each do |k,v|
    instance_variable_set("@#{k}", v) unless v.nil?
  end
end
Run Code Online (Sandbox Code Playgroud)

我希望能够设置已知的实例变量(如此处所示),然后遍历args并更新所选实例变量的值,或者创建新的变量.

ruby parameters initialization

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

红宝石!方法或过程

我想要修改一个variable位置,复制methodname!语法而不是将新的修改值重新分配给它var.我可以这样做proc吗?我还在学习procs,看到它们非常有用,使用得当.

a = "Santol bag 85.88   www.example.com/products/16785
Shaddock    kg  2.94    www.example.com/products/4109
Palm Fig    5kg 94.34   www.example.com/products/23072
Litchee lb  95.85   www.example.com/products/2557"

a = a.split("\n")

linebreak = Proc.new { |text| text.split("\n") }
linebreak![a]
Run Code Online (Sandbox Code Playgroud)

第一次重新分配似乎很麻烦.proc版本我想看看我是否可以内联执行它.这可能吗?

ruby block proc

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

PostgreSQL 选择最近 30 天的结果

我需要PostgreSQL 过去 30 天的报告,其中某些日子可能没有条目。所以上周二可能没有任何记录。星期三可能有 8 条记录。

这将进入条形图,因此需要过去 30 天的每一天。只靠数据库,有没有办法强制一个最近30天的结果,加上对应的结果值,即使是nil?我必须将最后一个设置为 0。现在我的结果只显示了 16 天。

我想我必须迭代结果Ruby以获得我正在寻找的数据集。我试图依靠数据库而不是在外面运行以进行进一步处理。

SELECT DISTINCT creation_date::date as myday, count(id)
FROM queries
GROUP BY myday
ORDER BY myday DESC
LIMIT 30 
Run Code Online (Sandbox Code Playgroud)

postgresql select

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

我可以为Clean Code Ruby使用对象而不是条件吗?

我有条件:environment为交易设置电子商务符号.当我开发时,我希望使用测试帐户.

if :environemnt == 'development'
    :ssl_merchant_id  = '001234'
    :ssl_user_id      = 'windoe6'
    :ssl_pin          = 'ABCDE'
elsif :environemnt == 'production'
    :ssl_merchant_id  = '006543'
    :ssl_user_id      = 'dingbat32'
    :ssl_pin          = 'AKEIN'
end
Run Code Online (Sandbox Code Playgroud)

我想使用类定义和对象创建来避免条件.清洁代码建议这样做.我无法看到绕过条件来选择这些符号集中的任何一个.

是否可以使用类定义来避免条件限制?我仍然需要创建两个类,然后选择一个必须在代码中选择的类.还有一个触发器可以选择使用或创建的对象.可以做到,怎么做?

ruby conditional class

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

Ruby回合下一代

我怎样才能完成下一百个?使用Ruby 2.3.2.

48 -> 100 52 -> 100 112 -> 200

试过48.round(-2)但是那个倒了下来.Trialed一些BigDecimal值,但这让我无处可去.

ruby rounding

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

Ruby 字符串 end_with?大批

我正在寻找一种方法来限定文件名是否以数组内的后缀结尾。

\n\n
filetypes = %w(.flac .wv)\nDir.open(Dir.pwd).each do |filename|\n  q = "." + filename.split(\'.\').last.to_s\n  pp filename if filetypes.include?(q)\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

我认为必须有某种内置迭代器来遍历限定符数组。我在这里错过了什么吗?

\n\n
filetypes = %w(.flac .wv)\nDir.open(Dir.pwd).each do |filename|\n  pp filename if filename.end_with?(filetypes)\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是行不通的。文档是这样说的:

\n\n

end_with?([suffixes]+) \xe2\x86\x92 true or false

\n\n

所以它表明可以遍历数组,但它对我不起作用。我怎样才能将数组传递给end_with?

\n

ruby arrays string

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