标签: Ruby
pass-by-reference
这个问题吸引了很多有用的答案,也引起了很多分歧。到目前为止,我没有在任何答案中看到任何解释以下内容的东西:
ruby-e def fx x=7端;a=3;fa;打印a打印3
ruby-e def fx[0]=7端;a=[3];fa;打印a[0]打印7
根据经验,在我看来,标量对象和更复杂的对象(如散列和数组)之间存在某种区别,标量通过值传递,复杂对象通过引用传递。这类似于C的语义
我的理解是ruby中的一切都是对象,前面问题的答案中没有一个提到标量和复杂类型之间的区别。那么我的描述是不是错了,如
我在Windows机器上运行Ruby和MySQL
我有一些Ruby代码需要连接到MySQL数据库并执行select。要连接到数据库,我需要提供密码等
Ruby代码可以显示请求密码的提示,用户输入密码并点击Enter键。我需要的是密码,因为它是键入的,显示为一行星号
如何让Ruby在“dos框”中将键入的密码显示为一行星号?可怜人的解决方案:
system "stty -echo"
# read password
system "stty echo"
或使用
这个库的目标读者是需要编写Ruby程
我看不到其他人在ruby中使用eval,所以我假设没有它也可以做到这一点。但我不知道怎么做
(1..9).each { |n|
eval "user_#{n} = prefix << '_' << user_#{n} if user_#{n}"
}
(1..9)|
eval“user_#{n}=prefix您可以使用ruby的define_方法动态定义一个方法
您可以将基于eval的语句替换为class\u eval中包含的define\u方法
但是,这取决于具
这对我来说似乎是Ruby 1.9的一个问题,但每当我尝试使用require“lib/mylibrary”Ruby请求或自动加载源代码时,都会出现“无需加载此类文件”错误。我总是需要插入Dir.pwd:require“#{Dir.pwd}/lib/mylibrary”
我到处都可以看到源代码,它们不需要查找当前的工作目录来包含源文件。我缺少什么?变量$LOAD\u PATH确定Ruby将检查要加载的文件的位置。从Ruby 1.9开始,默认情况下当前目录不在加载路径中,但是您可以使用require\
标签: Ruby
nodesnested-sets
目前尚不清楚如何从awesome_嵌套_集管理的树中正确删除节点或节点集
给定一个父节点和一个子节点,我尝试了
父、子、清除
但是,这会使树处于无法将子对象重新添加回父对象的状态
我是否必须显式地将所有lft、rgt和parent_id列清空?OP写道:
进一步的研究表明,如果我执行child.update\u属性(:parent\u id,nil)并重新加载父级和子级,这似乎是可行的
进一步的研究表明,如果我执行child.update\u属性(:parent\u id,nil)并重新加载父级
从WinXP计算机运行Capistrano。从Beanstalk repo部署到Linux box
在我的Mac OS X 10.6机器上,使用完全相同的capfile和安装详细信息,一切都可以完美运行,但我无法在Win XP机器上正常运行
查看了deploy.rb的第95行和第104行,因为这两行似乎会导致一些问题,但无法找出任何答案。有点不知所措:-[
部署尝试的确切日志为:
C:\Documents and Settings\Owner\Desktop>cap dev deploy
我已经在Jenkins中引入了一些脚本来证明概念,我想我希望我们所有的脚本都朝着这个方向发展。现在我保存了一个environment.rb文件和我的代码(watirwebdriver,cucumber),它告诉脚本我们正在测试哪个环境以及使用哪个浏览器(全局变量)。詹金斯使用rake启动脚本
我希望让用户通过Jenkins'choice'变量或类似变量选择环境和浏览器,然后将其传递给脚本。虽然我看到了Jenkins的框架,并为环境建立了一个选择列表,但我很难确定下一步是什么
我可以写enviro
有可能在有限的区域内将我自己的方法附加到另一个类上吗
如果是这样的话,有谁能给我展示一个更好的实践,或者它应该使用类似于deligate的方法来实现这一点
情况是这样的:在接收、生成和传递类B实例的类A中,
我想在那些bs上附加一些方法,而不让这些新方法在类A之外可以访问。这些方法被调用。您可以向任何对象添加方法,只影响该实例,而不影响创建该实例的整个类
some_object = Whatever.new
other_object = Whatever.new
class <<
为了学习Ruby,我从节点和一个简单的堆栈开始实现不同的数据结构。如果我将每个def与相应的end进行匹配,那么期望$end(EOF)但得到end会有很多错误。因此,我可以通过在类的末尾堆叠一些ends来修复它,但显然我不知道为什么会这样
require "Node"
class Stack
attr_accessor :top
def size
@size
end
def push(node)
if node &
我想创建一个聊天机器人,为此我想使用它,它基本上是一个引擎,可以在查看句子时找出单词之间的关系
我尝试使用以下方法安装了一个:
gem install linkparser
而且:
gem install linkparser -- --with-link-grammar="C:\Users\Gebruiker\Downloads\Linkparsergrammar\linkgrammar4r-0.0.3"
但是,我不断遇到以下错误:
Temporarily enhancing PATH t
在Ruby的源代码中哪里可以找到Range类的方法。我特别寻找最后一种方法。Ruby-VMRI 1.9.2您可以在这里找到Ruby源代码
它的根目录中有一个range.c
对于source中的最后一个实现,我认为它在这里:
就我个人而言,我更喜欢看的是,因为我发现它比YARV的可读性强得多。您正在查找的方法位于中,它只是@end实例变量的getter:
attr_reader :end
alias_method :last, :end
@end实例变量是在中设置的。换句话说:最后一个方法总是返
我有一个像这样的文件结构
root
|--lib
|--root.rb
|--extensions
|--strings.rb
我希望能够在root.rb文件中使用string.rb中的方法
因此,我在root.rb文件的顶部添加了require“extensions/strings”
但是我得到LoadError:无法加载这样的文件扩展名/strings.rb错误
我如何避免这种情况
我用了jandot的解决方案
Dir[File.dirname_uufile_u+'
根据锡人的意见,我提出了一个新问题
原始问题如下:
我用来调试的原始代码:
require 'debugger'
debugger
require 'thor'
这是一个两难的问题:
使用默认的-rdebug进行调试,我无法访问Rubygem的源代码
使用debuggergem进行调试,在调试之前,我必须require(我在上一个问题中尝试的方式,这是不可接受的,因为在我到达之前发生了一些重要的事情)
希望能找到一种调试方法。当需要rubygems时。与Ruby 1.9及更高版本的集成基本上是
标签: Ruby
watirwatir-webdriverwatirgrid
我想实现watirgrid,但我无法做到,每次我在控制器和提供者启动过程中遇到错误时,也就是在互联网上的所有示例中,它们都不起作用
任何人都可以帮助我实现这一点,一个完整的运行步骤的例子将是一个很大的帮助
我正在尝试以下代码:
require 'rubygems'
require 'watirgrid'
require 'watir'
require 'watir-webdriver'
# setup a controller on port 12351 for your new grid
c
我有个问题。我正在为GoogleSketchUp编写一个插件,并尝试过滤掉数组值,然后将过滤后的值放入另一个数组中。这是这样做的:
for z in 0..points.length
points2[z]=points[z][1]
end
其中点是双数组。有人能告诉我我做错了什么吗?这应该更好:
points2 = points.map {|p| p[1]}
你做错了什么?我是for循环的粉丝,你应该使用函数式,aka。Ruby方式:
points2 = points.map { |el
我尝试了以下方法,但另一端似乎没有设置基本的_身份验证标志,并且出现了“401 Unauthorized”错误
client = HTTPClient.new
client.set_auth(nil, "user", "secret")
client.get_async(full_url, {:id => hash[:id]}, {username: "user", password: "secret"})
# HOWEVER THIS WORKS, non-async
# client
我试图使用设置谷歌分析开始日期和结束日期来捕获过去30天内的独特访客。我已将end\u date=DateTime.now.strftime(“%Y-%m-%d”),如何将start\u date设置为30天前。根据锡人的建议更新:
在Ruby中:
require 'date'
end_date = DateTime.now
start_date = end_date - 30
formatted_end_date = end_date.strftime("%Y-%m-%d")
formatte
我正在尝试创建一个Regexp来匹配一个表达式,该表达式具有两个以上或等于两个'1'。
这是我到现在为止写的东西-
puts "Match." if /(1){1,5}/ =~ test_string
这将正确匹配“1”大于或等于2的字符串,但如果“1”的出现次数大于5,则仍然匹配
如何更正此Regexp以仅匹配出现1到5次1的字符串?可能有更好的版本,但这似乎起到了作用:
/^([^1]*1){1,5}[^1]*$/
细分:
^-字符串的开头
[^1]*1-零个或多个非1字符
1-A‘
红宝石大师的长期鉴赏者第一次提问
我有两个散列
hash1 = {"a" =>1, "b"=> 2, "c" => 3}
hash2 = {"f" =>1, "g"=> 2, "h" => 3, "i"=>2, "j"=>1}
当第二个散列的值相等时,我想用第一个散列的键替换第二个散列的值,例如:
hash2 = {"f"=>"a", "g"=>"b", "h"=>"c", "i"=>"b", "j"=>"a"}
我试图为执行随机方法建立一个逻辑。比如说,我有10个方法,我需要随机运行其中一个
主方法将驻留在my Rails 3.2应用程序的ActionController中,其中包含逻辑和10个方法。使用从数组中选择一个随机方法,然后使用:
你的问题是什么?当你说我正在尝试做一个逻辑时,从你的一次尝试中发布一个小代码真的会很有帮助,否则看起来你确实是在要求别人为你做你的工作。关于堆栈溢出,询问代码但不显示任何努力的问题是离题的。请添加几行代码以保持主题不变,因为这是一个有趣的问题,但如果不是这样的话,它
我正在构建一个rails应用程序,它是我从朋友那里克隆的。我使用的是Ubuntu 13.10,rails 3.2.14。我使用的是postgresql数据库,当我尝试运行rake db:migrate时,会出现如下错误:
PG::UndefinedObject:错误:类型json不存在
第1行:ALTERTABLE过滤器添加列搜索\字符串json
我安装了pg版本:-9.3.1
运行rails数据库的输出是:-psql 9.3.1,服务器9.1.10
正在运行选择版本;:-i686 pc lin
Exumerant CTAG不能很好地与Ruby配合使用,您可以看到Ruby.c代码中存在许多漏洞,基本上它无法识别许多情况。其中最重要的一点是:
class SomeModule::SomeClass
end
CTAG生成:
SomeModule someclass.rb /^class SomeModule::SomeClass$/;" c
这是错误的。正确且预期的条目是:
SomeClass someclass.rb /^class SomeModule::SomeClass
你是怎么做的
asd = 'qwe'
asd.match('qwe') do
p 'it matches'
else
p 'it doesnt match'
end
我的意思是说相反
asd.does_not_match('qwe') do
p 'it doesnt match'
else
p 'it matches'
end
“不匹配”的语法是什么?使用运算符“!”颠倒语句的逻辑。
把第一行改成
!(asd.does_not_match('qwe')) do
*我喜欢在整
我在rails中有3个模型之间的关联
class A < ApplicationController
has_many :b
end
class B < ApplicationController
has_many :c
belongs_to :a
end
class C < ApplicationController
belongs_to :b
end
完美地工作
但是当我写作的时候
A.first.b.c
A.first.b.all.c
然后ra
如何使new_数组成为new_Class而不是array类型的对象?
这不起作用:
class New_Class
def initialize
@array = ['1A','2A','1B','2C']
end
def remove_letters
@array.map do |rmv|
rmv.sub /([0-9])([A-Z])/, '\1'
end
end
def show_array
@
我正在使用Chris Pine的ruby教程:
任务是:
做一个橘子树课。它应该有一个height方法返回树的高度,还有一个oneyearpasss方法,调用该方法时,树的年龄为一年。每年这棵树都会长高(不管你认为一棵橘子树一年应该长多少),几年后(同样,你的呼唤)这棵树就会死。在最初的几年里,它不应该结果实,但过了一段时间它应该结果实,我猜老树每年的产量比年轻树多。。。你认为什么最有意义。当然,你应该能够计算ranges(返回树上橘子的数量)和pickAnOrange(将@orangeCoun
我似乎无法卸载旧版本的sass
我做完了
sudo gem uninstall sass
以及
sudo gem uninstall sass --version 3.2.14
当我试着去做
sudo gem update sass
它说没有更新
从这里开始,强制使用最新的gem的最佳方式是什么?我还没有尝试过带sudo出去。成功了。您确定没有使用最新的更新吗?你试过sass-v吗?
我用一个端点构建了一个简单的API。它可以清理文件,目前有大约30000条记录。理想情况下,我希望能够通过一个http调用获取JSON中的所有记录
以下是我的Sinatra视图代码:
require 'sinatra'
require 'json'
require 'mongoid'
Mongoid.identity_map_enabled = false
get '/' do
content_type :json
Book.all
end
我尝试了以下方法:
将multi_jso
我有一个模型数组,我想将其转换为散列,这样我就可以通过id引用它们。我知道我可以迭代这些项并将它们放入散列,但我知道必须有一种快速、简捷的方法来完成同样的事情:
my_models_hash = {}
@my_models.each do |model|
my_models_hash[model.id] = model
end
我怎么能在一条短线里做同样的事情呢?你在用对象追踪每一个对象
单向:
@my_models.map { |m| [m.id, m] }.to_h
在v2.0之前,
我有这个阵列:
[[4, 50], [2, 28], [1, 4], [4, 41], [1, 9], [2, 25]]
我希望构造一个由这个数组的元组[f,l]组成的数组,这样在[f,l]前面就没有g==f的元组[g,h]。所选元组的顺序与原始数组中的顺序相同
[[4, 50], [2, 28], [1, 4]]
示例如果有更多以4或1开头的数组,则应将其删除。它可以是任何整数,4和1只是一个例子。似乎有效:
[[4, 50], [2, 28], [1, 4], [4, 41], [1,
我想将~/bin文件夹添加到我的$PATH中,但每次我这样做并使用rvm时,都会收到以下警告:
警告!路径设置不正确,
“/Users/paulcowan/.rvm/gems/ruby-2.1.2/bin”并不是第一位,
通常这是由shell初始化文件引起的-检查它们是否有“PATH=…”条目,
将RVM重新添加到点文件也可能有帮助:“RVM变得稳定--自动点文件”,
要在此shell会话中临时修复,请运行:“rvm使用ruby-2.1.2”
我已尝试使用以下工具重新安装rvm:
rvm get
在纯ruby脚本中,我有以下内容:
result = JSON.parse result.body_str
count = result && result["ke1"] && result["ke1"]["key2"] && result["ke1"]["key2"]["key3"] && result["ke1"]["key2"]["key3"]["key4"] ?
result["key1"]["key2"]
许多人通常希望进行相反的转换,但我想从包含许多嵌套哈希甚至数组的Ruby哈希构建节点:
my_hash = {
"name" => "Something",
"property_1" => "Something"
"nested_array_items" => [{ "name" => "Nasty nested array item",
"advice" => "Use recursive function" },
我知道使用Perl我可以做如下事情:
bash$> perl -e 'print "\x48"x40;'
=> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
尝试在Ruby中执行此操作:
bash$> ruby -e "40.times{ print("0x48") }"
=> 7272727272727272727272727272727272727272727272727272727272727272727272727272727
我想用逗号分割以下数据,除了双引号字符串中的逗号
"(CONTRACTS OF 5,000 BUSHELS)"
怎么做
“原始”str.split不起作用
raw_str = '"WHEAT-SRW " ,150106 ,
CBT ,00 ,001 ,
31.5, 26.4, "(CONTRACTS OF 5,000 BUSHELS)"'
实际上我想从
您可以使用和负向前看和负向后看[0]来完成此操作:
raw_str = '"WHEA
在的初始化方法中,可以将max_prune_time作为选项传递
它的目的是什么
而且,
@max_prune_time=选项[:max_prune_time]| 2
默认单位是多少?秒?max\u prune\u time是Rails在缓存存储耗尽内存时通过删除旧条目来释放内存的最长时间(以秒为单位)。有关详细信息,请参见prune方法的实现:
def prune(target_size, max_time = nil)
# ...
start_time = Time.now
cl
我是Ruby新手,我正在尝试实现线程,但现在我犯了一个错误:客户端不明白连接已经关闭
早些时候,我在C++中编写了一个简单的TCP客户端服务器应用程序,并且该应用程序工作正常:如果服务器关闭了连接,客户端也说连接也被关闭了。但是在Ruby中,当客户端发生任何事情时,应用程序就会带着错误退出:
main.rb:34:in `write': Broken pipe (Errno::EPIPE)
from main.rb:34:in `puts'
from main.rb:34:in
我试图在rails 4中创建一个表单,使用form_for基于表示培训课程的对象。在加载页面之前,应用程序会检查当前用户是否已注册课程。如果没有,则表单上的“提交”按钮将创建一个新的“注册”,标记注册表中的课程id和用户id。这是正确的
如果用户已经注册了,那么我希望submit按钮有一个不同的功能——对特定的注册记录发出get请求,并在屏幕上显示其详细信息。本质上类似于直接指向“注册/id”。然而,这是行不通的
这是用户未注册时显示的表单。它会触发对注册控制器中的创建操作的post请求(并且有
我有一个带有define方法的模块,它动态创建一个类,如下所示:
require "active_support/all"
class SomeBaseClass
# code
end
module MyModule
def self.define(_class_name)
class_name = _class_name.classify
Object.const_set(class_name, Class.new(SomeBaseClass))
end
end
我已经到处搜索过任何机架文档,详细说明了如何访问文档中提到的您可以传递到机架应用程序的选项,如下所示:
$rackup-server thin-env development-option arg1=true
在我的config.ru中,我使用的是Rack::Cascade,如下所示:
机架::Cascade.new[myapp1,myapp2]
我需要访问通过命令行上的rackup传递给Rack的选项,并使其可用于在Rack::Cascade中运行的Ruby应用程序。可以通过[your_Rac
假设我在ruby中有一个类计数器,定义为
class Counter
attr_accessor :starting_value
def initialize(starting_value)
@starting_value = starting_value
end
def tick
@starting_value = @starting_value + 1
end
end
我想用这个对象填充一个数组,使用一个默认参数,如
我正在尝试登录,然后重定向到该页面,但它再次将我重定向到登录页面。我也尝试过这样做,但我仍然有同样的问题
require "mechanize"
a = Mechanize.new { |agent| agent.user_agent_alias = 'Mac Safari' }
a.get('http://erp.jecrcuniversity.edu.in:8084/jecrc_academia/') do |page|
page.form_with(
我正在尝试获取网页中列表项的计数并输出以下内容:
office_lists = browser_driver.li(:class, 'office')
office_list = browser_driver.li(:class, 'office')
office_list = Hash.new 0
office_list.links.each do |link|
office_list[link] += 1
puts office_list
但我一直不成功。我希望有人能。说这些都是
标签: Ruby
key-valueruby-hash
下面我举一个例子:
movies = {
dobby: "dobster is a lad",
pirates_of_the_carribean: "Its all about jack sparrow kicking ass!"
}
puts "what do you want to know about?\n
#{movies[:dobby]}. = 1\n
or...\n
#{movies[:pirates_of_the_carribean]}. = 2\n
Pick a nu
使用jekyll-v返回以下内容:
/Library/Ruby/Site/2.0.0/rubygems/dependency.rb:308:in'to_specs':在总共21个Gem中找不到'jekyll'>=0 Gem::missingspeccerror
已签入'GEM_PATH=/Users/myusername/.rvm/gems/ruby-2.4.2:/Users/myusername/.rvm/gems/ruby-2.4。2@global,执行“gem env”以获取更多信息
fr
在代码中实现ruby2d时,我遇到了这个错误
这是一个奇怪的运行时问题
Ruby2d代码
错误
请帮助我修复您必须从MINGW 64位命令提示符运行项目。不是从常规的DOS提示符Windows命令提示符
请确保按照此处的说明进行操作:
注意最后一段:
在Windows上使用Ruby 2D
使用Ruby 2D时,请确保使用MinGW 64位命令提示符,而不是标准的cmd.exe或“开始”菜单中的“使用Ruby启动命令提示符”
通过在C/users/username目录中创建usr/local/b
在下面的语句中,其中一个空格来自用户的输入,我从远程Rails控制台的ActiveRecord字段复制并粘贴了用户的字符,另一个来自键盘。声明返回false:
关于为什么/如何发生这种情况有什么想法吗?要验证用户输入的空白,不应该使用==和/或include?帮手。我们应该使用现代正则表达式来匹配空间
仅供参考:UTF-8规范中有十多个空格字符,包括但不限于:
spaces = {
space_medium_mathematical_space: " ",
spaces_em_quad:
我在ruby中搜索数组中的特定对象时遇到问题
我已向你提出请求https://jsonplaceholder.typicode.com/todos 从那里我得到了结果JSON。我正在尝试将其转换为对象数组,然后搜索我知道可以使用参数发出请求的事件,这将解决我的问题,但我没有访问后端的权限
我试图打印数组中的对象,其中包含一个术语中的特定值,并获取布尔值,说明字符串是否存在于数组中。我还试图在堆栈上找到我的问题的答案。这似乎与我的问题最接近,但对我帮助不大
client = HTTPClient.
我只知道在ruby中创建实例特定方法的一种方法,即
class Test;end
obj1 = Test.new
class << obj1
def greet
p 'Welcome'
end
end
obj1.greet # "Welcome"
obj2 = Test.new
obj2.greet # through error as,
Traceback (most recent call last):
NoMethodError (
我试图在Ubuntu20.04上安装ruby dbi,但是失败了,原因如下
osboxes@osboxes:/tmp$ sudo apt install ruby-dbi
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package ruby-dbi
我在Ubuntu 18.04上找到了一些关于ruby dbi
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 2323 页