小编Coc*_*ton的帖子

调用视图文件时如何传递参数?

我使用Sinatra和Haml编写了一个webform,用于调用Ruby脚本.

一切似乎都很好,除了一件事:我需要将参数传递给Sinatra/Ruby脚本中的Haml视图文件.

这是我的代码的一部分:

#!/usr/bin/env ruby
require 'rubygems'
require 'sinatra'
require 'haml'

get '/' do
  haml :index
end

post '/' do
  name = params[:name]
  vlan = params[:vlan]

  tmp = nil
  tmp = %x[./wco-hosts.rb -a -n #{name} -v #{vlan}]

  if tmp.include?("Error")
    haml :fail
  else
    haml :success
  end
end
Run Code Online (Sandbox Code Playgroud)

如果脚本遇到一个arror,它将返回一个包含单词"Error"的字符串.如果发生这种情况,我正在调用一个Haml文件,该文件将向用户显示错误页面.如果脚本没有遇到恐怖,它将返回一个成功页面.

我想在成功/失败页面中包含用户添加的新VM的名称.我的问题是我不知道如何在我的两个Haml文件中传递它.我搜索了一个解决方案,但没有找到任何东西.

ruby haml sinatra

22
推荐指数
2
解决办法
9293
查看次数

查找字符串数组的最快方法

该脚本必须验证大量IP中是否存在一个预定义的IP.目前我的代码功能就像这样(说"ips"是我的IP数组,"ip"是预定义的ip)

ips.each do |existsip|
  if ip == existsip
    puts "ip exists"
    return 1
  end
end
puts "ip doesn't exist"
return nil
Run Code Online (Sandbox Code Playgroud)

有没有更快的方法来做同样的事情?

编辑:我可能错误地表达了自己.我可以做array.include吗?但我想知道的是:array.include?能给我最快结果的方法吗?

ruby arrays string comparison loops

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

在Linux中将当前日期添加x秒

我这里有两台Linux(CentOS 6.0)机器,我需要在当前日期时间内添加(或删除)5秒钟.最后,我的两台机器都会有5秒的间隙(一个是正确的时间,另一个是5秒或多或少).

我知道我可以使用此命令更改日期:

date -s "DD MMM YYYY HH:MM:SS"
Run Code Online (Sandbox Code Playgroud)

但我需要精确,我很难在合适的时间运行命令.

所以我想知道是否有一种方法可以在当前时间增加5秒,有点像你选择时区而不是格林威治(在我的情况下是+5小时).

time centos date

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

regex - 如何在X次出现模式后匹配子字符串?

ab1-cde23-fg45-h6-ijk-789.lmn.local.        86400 IN A  12.34.5.123
Run Code Online (Sandbox Code Playgroud)

在以下DNS条目中,我正在尝试匹配该h6部分(位置4).在这一点上,我知道域的这一部分只由2个字母/数字或每个字母组成,所以我可以匹配它(以笨拙的方式)

"-[a-zA-Z0-9]{2}-"
Run Code Online (Sandbox Code Playgroud)

在我不能假设这是2个字母/数字的域的唯一部分的情况下,我怎么能只匹配第4个位置的内容减去-(ab1作为第一个位置,cde23第二个,依此类推,所有位置分开-)

我可以使用以下正则表达式匹配第4个位置,但它从一开始就包含所有内容.

"([a-zA-Z0-9]*-){3}[a-zA-Z0-9]*-"
Run Code Online (Sandbox Code Playgroud)

我在golang中使用这些regexp.

regex go

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

Ruby:在ID数组中查找最低的自由ID

我有一个不同ID的数组从1到4000.我需要在数据库中添加一些元素,这些元素将包含在该数组中.由于可能的最大ID是4000(在我的情况下并不是那么多),我希望能够找到可用于我的新元素的最低未使用ID.

我知道如何在C++中做到这一点,但由于我是Ruby的新手,我正在寻求帮助.在C++中,我会写一个循环,我会检查array [i] == array [i + 1] - 1.如果不是这样,那么新的id将是array [i] + 1.

我不知道如何在Ruby中编写它.

非常感谢您的帮助.

ruby arrays loops arraylist

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

标签 统计

ruby ×3

arrays ×2

loops ×2

arraylist ×1

centos ×1

comparison ×1

date ×1

go ×1

haml ×1

regex ×1

sinatra ×1

string ×1

time ×1