Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
 Ruby_IT技术博客_编程技术问答 - 「Fatal编程技术网」

如何将有效单词与ruby正则表达式匹配

使用ruby正则表达式,如何匹配分隔列表中的所有单词,但仅当整个单词包含有效的单词字符(例如:字母数字或下划线)时才匹配。例如,给定字符串: “看,简,跑,r#un,j@ne,r!n“ 我想匹配这些词 “看”、“简”和“跑” 但不是文字 "r#un",j@ne'或'r1n' 我不想和昏迷相匹配。。。只是文字本身 我在这里启动了正则表达式:另一种方法 result=s.split(/[\s,]/)。以另一种方式选择{| w | w=~/^\w+$/} result=s.split(/[\s,]/)

Ruby对curl进行系统调用的正确语法是什么?

要刷新Redmine,我需要SVN从提交后钩子ping我们的Redmine安装。我们的post-commit钩子是一个生成电子邮件的Ruby脚本。我要插入一个呼叫,请执行以下操作: curl——不安全https://redmineserver+webappkey 此调用可从命令行执行,但当我尝试执行此操作时: #!/usr/bin/ruby -w REFRESH_DRADIS_URL = "https://redmineserver+webappkey" system("/usr/bin/cu

Ruby 向Janus安装程序添加VIM插件

我最近从一组定制的vim插件和.vimrc切换到使用。我真的很喜欢这个设置,但我缺少的一件事是Ruby中块的自动完成 例如,当我键入: def method <enter> 我在使用Tim Pope的一些插件,但记不起是哪一个提供了功能(可能是Rails?),有没有办法使用Janus获得此功能?有人不想要这个的原因吗?它看起来真的很方便。你说的 大概你可以把这个回购协议加入Janus rakefile,不过我还没有测试过。这可能不包括在Janus中,因为这在很大程度上可以用Janu

Ruby注入递归?

目标是从['a','b','c']开始,最后以{'a'=>{'b'=>{'c'=>{}}} 所以,为了确定方向,我做了以下工作: ['a','b','c'].inject({}){|h,v| h.update(v => {})} # => {"a"=>{}, "b"=>{}, "c"=>{}} 然后我想,如果我真的传递了结果散列,它将递归并嵌套,但是: ['a','b','c'].inject({}){|h,v| h.update(v => {}); h[

Ruby 为什么分配变量时do/end块的行为/返回不同?

在ruby 1.9.2中,这将返回 puts [1,2,3].map do |x| x + 1 end.inspect 正在分配变量 # 1 # 2 # 3 [2,3,4] puts [1,2,3].map { |x| x + 1 }.inspect 胡须块按预期工作: x = [1,2,3].map do |x| x + 1 end.inspect puts x [2,3,4] puts [1,2,3].map { |x| x + 1 }.inspect 解析为:

Ruby 运行Heroku控制台不会启动

我试图运行Heroku控制台,但在控制台中,我收到消息“Running console attached to terminal”,但控制台没有启动 在Heroku日志中,我得到错误: Error: no child processes attached. 有什么帮助吗?执行此操作,然后再试一次 在程序文件中 web:bundle exec unicorn_rails-p$PORT-c config/unicorn.rb 在unicorn.rb中 工作程序2 预加载应用程序true 超时30

使用ruby将一个数组包含在另一个复杂数组中

我有以下阵列: array = [ [link_text1, link1],[link_text2, link2], ... ] array = [ [views1],[views2], ... ] 如何将它们组合在一起,这样我就可以得到这个数组: [ [link_text1, link1, views1], [link_text2, link2, views2], ... ] 尝试拉链和扁平的组合: a1 = [ ["link_text1", "link1"],["link_text2",

Ruby 终止线程失败

我现在在终止线程时遇到问题。是否存在立即终止线程的方法 def write_data linux.execute("/usr/local/bin/pload -w -W -o", timeout=> 10800) end def func if( a < b) th = nil th = Thread.new{ write_data } th.run wait_until(interval=>60,timeout=

Ruby:检查是否在别名之前定义了方法 课堂测试 定义我的打印 p“打印一些东西” 结束 结束 课堂测试 别名\u方法:旧\u打印,:我的\u打印 定义我的打印 旧印刷品 p“再打印一些” 结束 结束

我最初的测试班是最优秀的。然后我决定再添加一些,但我决定添加别名 但前提是我的打印已经定义好了。有没有一种简单快捷的方法来检查我正在使用的别名是否已定义?如何 class Test def my_print p "Print something" end end class Test alias_method :old_print, :my_print def my_print old_print p "Print some more" end

Ruby 无法安装RVM的单用户版本

问题很简单: 我无法安装RVM(单用户安装),就像我遵循RVM网站上的说明一样,即: $ curl -L https://get.rvm.io | bash -s stable 我在安装脚本文件的第360行(以echo开头的那一行)出现权限被拒绝错误: 以下是错误消息: 奥利维尔~$curl-L| bash-s稳定 bash:line 360:/usr/local/rvm/RELEASE:Permission denied 如果我在上面的命令中的“bash”之前添加“sudo”,它可以正常工

Ruby 按另一个哈希中的值对哈希进行排序

我想按照Hash1值的顺序对Hash2的键进行排序。 Hash2不需要包含Hash1的所有值。 Hash1不需要包含Hash2的所有键。 如果Hash2中存在一个在Hash1中没有相应值的键,则该键的顺序应低于任何现有的已排序键 Hash1 = { p0: "q11", p1: "q55", p2: "q92", p3: "q77" } Hash2 = { q55: {...}, q23: {...}, q59: {...},

Ruby Rails使用有许多关联

这是一个noob问题-我有3个关联的表,我正在尝试访问 患者模型包括: has_many :charts has_many :providers, :through => :charts has_many :charts has_many :patients, :through => :charts belongs_to :patient belongs_to :provider 提供程序模型具有: has_many :charts has_many :providers,

无法使用RVM安装ruby 1.9.2

谷歌在试图找出问题所在方面没有多大用处 rvm install ruby-1.9.3-p392 Searching for binary rubies, this might take some time. No binary rubies available for: osx/10.8/x86_64/ruby-1.9.3-p392. Continuing with compilation. Please read 'rvm mount' to get more information on b

Ruby 如何直接使用oauth gem从twitter检索状态?

如何使用gem获取tweet的json 我尝试了以下操作,但始终拒绝访问,即使我知道我的密钥很好: def prepare_access_token(consumer_key, consumer_secret) consumer = OAuth::Consumer.new(consumer_key, consumer_secret, {:site => "https://api.twitter.com"}) consumer.get_request_token.get_acce

Ruby 无法从LinkedIn api获取访问令牌

我正在使用LinkedIn api访问。 为了获得访问令牌,我正在做需要做的事情 # create linkedin application client client = LinkedIn::Client.new('your_client_id', 'your_client_secret') # get authorize url authorize_url = client.authorize_url # go to this url and fetch api_code from th

Ruby 在远程服务器上安装git并推送本地存储库

我知道这个问题可能已经被问过好几次了,但我找不到一个确切的例子来说明我想做什么,而且由于某种原因,我似乎无法让它发挥作用 我有一个本地RubyonRails repo,我准备与另一个开发人员共享,有人能给我一个通过推动本地repo来创建新存储库的过程(或者给我指出正确的方向)吗 谢谢 Marc我强烈推荐bitbucket(最多免费5个用户)作为托管git服务。他们有很好的文档: 编辑: 创建回购协议 推 我强烈推荐bitbucket(最多免费5个用户)作为托管git服务。他们有很好的文档: 编

Ruby 从GLI命令中运行capistrano命令失败

我正在使用创建命令套件应用程序 我有以下命令(简化): 任何其他命令ls,git pull,无论什么,都可以正常工作,但当我尝试运行cap时,会出现以下错误: .../.rvm/gems/ruby-2.0.0-p0@global/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:214:in `block in replace_gem': capistrano is notpart of the bundle. Add it to Ge

艰苦学习Ruby ex.43额外学分

我正在努力学习Zed Shaw的《艰苦学习Ruby》,我想看看我是否能获得第一个额外学分。他让你解释归还第一个房间的工作原理。除了.call()的工作原理外,我想我了解它的大部分内容。这就是我想到的,有人能告诉我我是得到了还是离开了基地吗 class Game def initialize(start) @quips = [ "You died. You kinda suck at this.", "Nice job, you died...jackas

ruby中将字符串拆分为k部分的所有方法

对于在k个因子中拆分字符串的每种方法(其中因子也可能为空),获取包含数组的数组的最佳方法是什么? 例如,如果k为3且字符串为 Hello 然后我想要一个返回值,如下所示: [ ["", "", "Hello"], ["","H","ello"], ["", "He", "llo"], ..., ["H", "e", "llo"], ["H", "el", "lo"], ..., ["Hello","",""] ] 我想把它放在函数中,所以k是参数(对于固定的k,我只写k-1循环)。在ruby

Ruby 单独文件中的rspec设置方法

我正在尝试为rspec创建一个安装文件,以便我的'_spec.rb'测试只有'it'块,如下所示: setup.rb require 'rspec' module Setup describe "setup" do before(:each) do @foo = 'hello' 'do something' end after(:each) do 'do something' end end 规范/测试\u规范rb require_relative '../setup

Ruby 如果关联表字段满足条件,则求和表列

我正在尝试学习Rails4与数据库的关联 在我的应用程序中,我有两种型号,销售和产品 class Sale < ActiveRecord::Base belongs_to :customer belongs_to :product end class Product < ActiveRecord::Base self.primary_key = :product_id has_many :sales end 这将成功返回产品组id为“30

Ruby脚本,存储API登录信息的最佳方法?

我目前正在编写一个脚本(命令行工具),以帮助我管理expose控制台 起初,每次使用脚本登录控制台时,我都会向脚本传递三个参数,例如: $ nexose-magic.rb -u user -p password -i 192.168.1.2 --display-scans 这不是很有效,所以我创建了一个config.yml文件,将控制台信息存储在散列中 $ nexpose-magic.rb -c console --display-scans 我相信这个工具对管理员会很有用,所以我想在gem

Ruby 给一只小虾一个冷食

有可能有一个子表跨度列吗?如果尝试设置表格的样式: subtable = pdf.make_table subtable_data, ... table_data = [ [subtable, 'header 1', 'header 2'], ['data1', 'data2', 'data3', 'data4'] ] table = pdf.table table-data do |t|

&引用;如果;具有多项选择的条件(RUBY)

我是ruby的初学者,似乎找不到解决这个简单问题的方法: 我有一个随机变量:var1=rand(0…100) 我希望这个变量只有在25或75的情况下才可以接受。如果不是,它会一直随机进行,直到达到25或75 var1 = rand(0...100) until var1 == (25 or 75) var1 = rand (0...100) end 变量“var1”总是给出25,因为它坚持25,不接受75 问题是:我怎样才能使一个声明包含两个选项而没有一个选项?我试过用括号括起来,但似乎不起

包含类方法和继承的Ruby模块

我很难理解为什么以下方法不起作用: module M1 def m1 p 'm1' end module ClassMethods def m1c p 'm1c' end end def self.included base base.extend ClassMethods end end module M2 include M1 def m2 p 'm2' end end class Foo

使用RSpec进行测试-将活动消息输出到Ruby中的STDOUT

我正在寻找将活动消息输出到命令行窗口的帮助。我知道这似乎有些倒退,但这是我被赋予的任务。我已经编写了测试,所以它们都通过了,但是我需要将下面的活动转换到命令行窗口中。这只是一个类似于不可能的机器游戏的游戏 首先,我需要创建一个启动不可能机器的流程,然后在完成之前模拟连续启动的每个活动 据我所知,所有显示的消息都应该发送到标准输出通道。以下是一些已编写的测试: module ImpossibleMachine # Input and output constants processed by su

如何在ruby中快速测试类行为

我正在用Tic\u tac\u toe.rb中的所有类构建一个基于类的Tic-tac-toe游戏。我可以将类加载到irb中,以便使用irb-r./tic\u tac\u toe.rb进行交互测试,但每次我都必须手动创建一个播放器和gameboard实例。我包括了p1=Player.newinttic\u tac\u toe.rb,但它似乎没有运行 更一般地说,我正在做的工作流程是否良好?我应该如何着手为我的类编写一些代码,并对其进行测试和返回?(对于这个小项目,有没有比单元测试更简单的方法?为了

Ruby 在远程计算机上打开Excel文件

我想以编程方式打开用户计算机上的Excel文件,读取第一个单元格中的内容,然后使用以下信息将其保存到我的webapp上的mysql数据库中: cell content (text) file_updated_date (date) 这可能吗 用户是否必须为我安装桌面应用程序才能打开他们计算机上的文件,或者我是否可以获得运行脚本和从网站返回信息的权限 哪些语言或技术可用于打开Excel文件、读取内容和发送到http端点?这是一个Ruby程序吗 是你的朋友。学习它,喜欢它,热爱它。这个链接应该可以

Ruby Mac OS X/iOS中匹配表情符号的正则表达式

注意:在不支持附带表情符号的系统上,这个问题可能看起来很奇怪 这是我们的后续问题 我想构建一个正则表达式,它匹配可以在Mac OS X/iOS中输入的所有表情符号 显而易见的Unicode块涵盖了大部分表情符号,但不是所有表情符号: U+1F300..U+1F5FF U+1F600..U+1F64F U+1F650..U+1F67F U+1F680..U+1F6FF 维基百科提供了一个已编译的列表,这看起来是一个很好的起点:(略为更新) people='即将到来的会议将对此有所帮助。目前这些

Ruby:.grep和regex

我正在使用正则表达式将所有'*'替换为'[a-Za-z0-9]*',除非'*'前面有'\'之类的'\*'。我如何可以忽略案例“\*” 代码: puts Regexp.new(val.gsub(/^\*/,'[A-Za-z0-9]*')) =~ str ? 'true' : 'false' 你可以通过更具体的替换来做到这一点: tests = [ "*.foo", "\\*.foo" ] tests.each do |test| r = test.gsub(/(\\\*|\*)

需要一些帮助来理解ruby中的反向引用吗

我正在处理一个coderbyte问题,在这个问题上,我输出一个字符的出现次数以及相应的字符。例如,“wwggopp”将返回3w2g1o2p。我能够解决这个问题,但我将我的答案与其他人的答案进行了比较,他们得出了以下结论: def RunLength(str) chunks = str.scan(/((\w)\2*)/) output = ' ' chunks.each do |chunk| output << chunk[0].size.to_s + c

Ruby Dashing dashboard赢了';不能在Windows上显示

我完全按照以下步骤运行: dashing new project cd project bundle install && dashing start 127.0.0.1 - - [02/Jun/2015 11:55:58] "POST /widgets/welcome HTTP/1.1" 204 - 0.0000 它列出了“正在使用”输出并启动服务器 访问localhost:3030会生成一个纯灰色的网页,上面没有任何内容,只有文本试试这个:curl-d'{“auth_to

Ruby 具有自定义IP的域上的HTTP请求

我正在尝试向包含至少10个已知IP地址的域www.example.com发出HTTP请求 如果我在www.example.com上执行请求,域将解析为一个随机IP地址,并且对于给定的客户端通常是相同的。我不能用IP本身来代替域 我如何动态地使用这10个IP地址在这个域www.example.com上发出10个不同的请求 我知道我可以使用hosts文件将关联的IP更改为域,但是否可以通过编程方式进行更改?我应该找什么?如果您对PHP或Ruby有任何想法,我很乐意在这里介绍。Perharps您可以在

Ruby 是否可以在grape路由中提供可选的URL参数

是否可以在grape路由中提供可选的URL参数 即。 对于端点,例如: get '/user/:name/:location/:id' do end 是否有任何方法可以在URL中使用或不使用“location”参数来命中此端点 我尝试用括号为可选参数定义端点,如下所示: get '/user/:name/(:location)/:id' do end 但是这不起作用我建议您使用位置作为查询参数。这样你就可以选择它,只保留一条路线 params do opt

Ruby 理解`array.map(&;:方法)`

为什么: [1,2,3,4,5].map(&:to_s) #=> ["1", "2", "3", "4", "5"] 工作,但: [1,2,3,4,5].map(&:*(2)) 引发意外语法错误?&称为to_proc运算符。它对其后的表达式调用to_proc方法,然后将生成的过程作为块传递给该方法 在&:to_s的情况下,:to_s是一个符号,因此操作员调用它。文档有点混乱,但可以说这两个表达式或多或少是等效的: my_proc = :to_s.to_proc my_p

Ruby:如何从用户输入动态构建哈希

我有一个像下面这样的杂烩 h = {a: 1, b: 2, c: 3, d: 4.....z: 26} 现在用户输入1,然后我将获取第一个5,如果用户输入2,那么6到下一个5表示6到11 如何以最佳方式实现这一点,这样您就可以简单地使用切片数组函数来分割内容 alphabets = [*('a'..'z')].collect.with_index{ |key,index| { key => index+1 } } user_input = 1 # Capture use

Ruby Rails 5中的记录创建导致测试失败

我正在学校开发一个应用程序,我遇到了这个错误。到目前为止,应用程序漫游是在rails 4.2.6中启动的,我正在运行5.0.0.1 错误是: Failures: 1) Post Creation can be created Failure/Error: expect(@post).to be_valid expected #<Post id: nil, date: "2016-12-20", rationale: "Anything", created_at: nil

ruby中数组的重复元素

我在ruby中找到了很多关于删除重复项的参考资料,但我找不到如何创建重复项 如果我有一个像[1,2,3]这样的数组,我如何将它映射到一个带有配音项的数组[1,1,2,2,3,3] 有什么方法吗?试试这个 [1, 2, 3].flat_map { |i| [i, i] } => [1, 1, 2, 2, 3, 3] @Ursus的答案是最干净的,有可能的解决方案: a = [1, 2, 3] a.zip(a).flatten #=> [1, 1, 2, 2, 3, 3] 或 试

Ruby 在';新';

我正在尝试使用RubyonRails gem Rubychy测试一个子应用程序的动态按钮。这是静态执行的方式: keyboard = Rubychy::DataTypes::Keyboard.new( :to => 'myname', :hidden => false, :responses => [ Rubychy::DataTypes::KeyboardResponse.new( type: "text", body: blah,

Ruby 尝试使用line cookbook,但失败并出现错误

有人用过烹饪书--> 我正在尝试向rsyslog.conf文件添加多行代码,并使用前面建议的行cookbook 食谱内容: replace_or_add "New Lines" do path "/etc/rsyslog.conf" pattern "# ### end of the forwarding rule ###" line "#audit log\n$ModLoad imfile\n$InputFileName /var/log/audit/audit.log

Ruby 如何在searchkick中组合精确短语和部分匹配

我需要执行精确匹配和常规匹配的搜索组合,如: 本田-丰田“混合动力车”我想将本田和丰田与混合动力车匹配。我还想向用户提供这种语法,允许将确切的术语放在双引号中 我看过searchkick文档,只找到了如何搜索精确表达式,而不是两者的组合: User.search“新鲜蜂蜜”,匹配::短语 我怎么做

在Ruby中执行气泡排序的最佳方法?

每次我学习一门新的语言,我都试图在其中建立一个冒泡排序。我这样做是因为它使用了公共迭代的一个很好的部分,所以我以后可以引用它 现在,在我用过的其他语言(C、Python、VB)中,这(最多)是一个20分钟的任务。。。(我在C中遇到了内存分配问题) 但是在Ruby中。。。我就是不能让它工作。我遵循了我一直使用的完全相同的公式。不言而喻: #!/usr/bin/ruby unsorted = [] swapFlag = 0 count = 1 # 1 == TRUE, 0 == FALS

来自另一个类的Ruby访问实例方法

在def check_In实例方法中,规范要求呼叫室#在正确的房间实例上添加居住者 我的第一个想法是为添加居住者定义Room.new,所以我使用房间[Room\u name]=rooms.new.add\u居住者(person)。但是,由于参数的原因,这将不起作用(假定0预期为1) 符合规范的解决方案是房间[房间名称]。添加居住者(人) 这如何允许从Hotel类中的def check\u-in实例方法访问房间类中的实例方法def add\u accounter 我逐渐意识到rooms是一个散列,

ruby不能在windows 10的所有目录中工作

以下是我的设想: 我有一个要运行rake命令的目录。 我安装了ruby 1.9.3。 我在默认位置C:/Users/Administrator 我运行ruby-v,得到响应,ruby 1.9.3p551(2014-11-13)[i386-mingw32] 这一切都很好 我浏览到一个文件夹并在该目录中打开一个命令窗口:C:/agent 我运行ruby-v并得到响应ruby未被识别为内部或外部命令… Ruby安装在这里:C:\Ruby193\bin这是我的%PATH% 此外,当我从命令行运行PATH

Ruby Selenium自动关闭窗口

我试图用ruby编写selenium机器人,但它只是在加载页面后关闭chrome窗口。我能做什么?请帮忙 require "selenium-webdriver" options = Selenium::WebDriver::Chrome::Options.new options.add_argument('--ignore-certificate-errors') options.add_argument('--disable-popup-blocking') options.add_arg

Ruby 使用同一密钥将嵌套哈希与深度合并合并

我试图将两个散列合并在一起,这样做我想我可以使用deep\u merge但它没有提供所需的输出: collection = {:foo=>{:amount_gross=>1886.0}, :bar=>{:amount_gross=>184.0}, :total=>{:provider=>"total", :amount_gross=>2070.0}} new_collection = {:foo=>{:amount_gross