我很难找到一个优雅的ruby方法来做这件事。我有一个包含52张牌对象的牌组数组,我想在上面迭代并循环通过玩家对象数组,一次处理一张牌到他们的手牌数组中。比如:
deck = Card.deck.shuffle!
deck.each do |card|
@players.NEXTELEMENT.hand << card
end
deck=Card.deck.shuffle!
每一张牌|
@players.NEXTELEMENT.hand怎么样
deck.each_slice(
此代码返回以下错误
ftp = Net::FTP.new(IPAddress)
ftp.login(UserName, Password)
ftp.sendcmd("prompt")
ftp.sendcmd("mget filename*")
/usr/lib/ruby/1.9.1/net/ftp.rb:261:in'getresp':500'PROMPT':未理解命令(net::FTPPermError)
from/usr/lib/ruby/1.9.1/net/ftp.rb:269:in'v
我正在使用pg gem与来自Ruby的PostgreSQL对话。有没有
检查是否没有结果的更好方法是使用res.ntuples==0
一个打字错误?使用zero更快、更简洁?大于==0
作为提示,我强烈建议将ORMGem与Postgres或MySQL或几乎任何其他数据库一起使用。它允许您使用原始SQL或数据集,或充当与ActiveRecord类似的全面建模ORM。谢谢。但出于性能原因,我希望与金属保持距离。我用最少的启动时间写东西。我尝试过活动记录方法,但启动时间太慢了。num_tuples只是
如果我有这样一个config.ru文件:
def my_method
1+2
end
require 'my_sinatra_app'
run Sinatra::Application
从my_sinatra_app.rb中调用my_方法将返回“main:Object的未定义方法`my_方法””
作为一种顶级方法,它应该可以从任何地方访问;为什么我的方法不能从my\u sinatra\u app.rb中访问?config.ru在Rack::Builder中定义了instance\u e
实际上,我要查找的所有内容都在标题中说明了——我需要在测试中访问warden用户变量,以检查身份验证是否有效。另一种方法对我来说也是可能的,只是试着很好地测试身份验证:)
在机架测试样式的完整堆栈测试中,您无法在内部请求环境中获取。如果您想验证您是否已作为特定用户登录,您需要查看重定向URL(如果它重定向到用户可识别的URL)或遵循重定向(轻松使用机架测试的遵循重定向!帮助器),然后在HTML中查找用户ID的证据
我原以为您不需要真正测试Warden本身,但您需要确保您向它提供了正确的信息,并且
可能重复:
为什么==不起作用?我怎么知道这个方法呢?===属于(现在我猜它调用对象,或者对象),但是我怎么能确定呢?当===检查类型时,它通常只检查两个参数的值。它通常只检查两个参数的值,当===也检查类型时。重复:
案例平等。有关详细信息,请参阅文档。此方法通常在对象的子类中重写。例如:
大小写相等——如果一个对象是mod的实例或mod的后代之一,则返回true。对模块的使用有限,但可以在case语句中按类对对象进行分类
是另一个,在这种情况下,它是=~的同义词:
a = "H
任何人都可以有更具描述性的Rspec示例吗?我使用的例子,从网站工程非常好。但我想学习更多像go to site X(如Google)->在文本字段中输入数据(如Ruby)
检查HTML列表中是否有Ruby
我可以在Rspec上运行任何一个脚本,并生成关于案例通过-失败状态的报告
我感谢您提前给出的所有回复。这是一个完整的示例,由您提供
这是一个完整的示例,由提供
我想他们是想简洁,但就我个人而言,我会在before和after子句中使用do/end块。谢谢你的回答。watir rspec和xp
下面是代码:计算时,出现错误:
arr = [0.054954087385762455, 0.5093998626512432, 5.880466289995431, 0.8639141517665208, 0.2152490168404071]
sum = arr.inject {|sum, item| sum + item}
tmp = 0
arr.each do |pwr|
tmp = tmp + (pwr / sum -
我没有任何1.8.xRuby应用程序需要维护,所以我想通过在我的OSXLion上用1.9版本替换预先安装的Ruby来摆脱RVM
可能吗?我该怎么做?我是否应该删除当前的解释器并用新的解释器替换它
还是有更好的方法随时准备1.9.2?我想要的只是一个1.9.2:-)版本的Lion我想你可以用它来更新你的ruby on osx,检查一下
brew info ruby要了解有关已安装版本的更多信息,请参见。我认为您可以使用更新ruby on osx,请检查
brew info ruby要获得更多关于安
我的模型serialize中有一个序列化属性:顶点,数组。在使用它时,一切似乎都正常,但在重新加载控制台或web请求后,序列化的数组将作为字符串返回,这显然不是我所期望的。以下是rails控制台中的相同过程:
ruby-1.9.2-p290 :009 > g.vertices = [Vertex.new, Vertex.new]
=> [#<Vertex:0x000000036315e8 @neighbours={}, @options={}, @name=nil, @rea
我遵循了上的示例代码,但它不起作用。在我的Rails控制台中,如下所示:
irb(main):039:0> require 'twilio-ruby'
=> nil
irb(main):040:0* account_sid='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
=> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
irb(main):041:0> auth_token='yyyyyyyyyyyyyyyyyyyyyy
它只是推动第一个入口,然后是第三个入口,然后是第五个入口。我认为这是我打破循环的方式,因为如果没有break方法,它就不会发生
当我在空行上按enter键时,我需要它将从循环中打断
提前谢谢 您正在调用的在循环中获取两次。第一次将其推入阵列时。第二次,它将与空字符串进行比较,以进行循环中断。但每一次它都要求一条新的线路
每个循环只需调用get一次。因此,您可以将其保存在变量中,然后在以后的代码中多次使用该变量
cool_words = []
while true
cool_words
我正在尝试编写一个定制的EM::Protocol模块,它可以打包/解包结构化二进制数据包。数据包结构应该定义为名称/格式对,可以是字符串、其他一些易于解析的格式,也可以是某种DSL
一些快速的代码可以让大家理解这个想法:
module PacketProtocol
def self.included(base)
base.extend ClassMethods
end
def receive_data(data)
# retrieve p
现在,我的文档中有以下示例代码:
some_keeper = SomeKeeper.new
some_keeper.report
# ...
# save the report to a file
# ...
some_keeper.fix!
“将报告保存到文件”将不会在以后填充,它将与文档中的一样,只是缺少一段代码片段
文档中缺少代码是否有标准
注意:我正在用Ruby编写文档,并使用Yardoc。可以找到可用标记的列表。没有缺少的标记,但您可以添加注释。但是,您也可以使用define_tag
我有一个类似以下内容的XML文件:
<Companies type="Container">
<Company type="Category">
<Name type="Property">Company 123</Name>
<Location type="Property">New York</Location>
<Employees type="Container">
标签: Ruby
instance-variablesaccessor
我有一个带有实例变量@type的Tiles数组:
如何获取每个磁贴的@类型?如何仅返回具有特定@type的对象?如果要获取包含每个type属性的数组,首先需要至少为@type创建一个读取器:
然后使用Arraymap:
如果要根据其@type值筛选平铺对象,Arrayselect是您的朋友:
filtered_type_array = s.select{|t| t.type == 'some_value'}
以下是数组的文档:如果您想获得包含每个类型属性的数组,首先需要为@type:
然后使用
我认为有一种方法可以只运行带有给定标签的测试。有人知道吗?或者,您可以传递行号:rspec spec/my_spec.rb:75-行号可以指向单个spec或一个上下文/描述块,该块中运行所有spec查找文档并不容易,但您可以使用散列标记示例。例如
# spec/my_spec.rb
describe SomeContext do
it "won't run this" do
raise "never reached"
end
it "will run this", :foc
我有一个名为WG的模块,应用程序中的所有类都在其中,纯粹是为了名称空间,所以我不会与外部代码发生命名冲突
我的问题是,我的应用程序中的每个类都需要指定为在该模块中,这是一个难题,主要是因为它给我的应用程序中的所有代码添加了一个缩进级别
换句话说,这是一个典型的类,在一个名为Thing.rb的文件中
module WG
class Thing
def do_things
end
end
end
在我看来,应该有某种方式要求在WG模块的上下文中使用该文件,这样我就可以放弃顶
我正在尝试使用RVM安装Ruby 2.0.0版。我正在尝试使用Rails安装程序(railsinstaller.org)
我已经下载了软件包并运行了安装程序,还重新启动了所有终端窗口
以下是我遇到的问题:
如您所见,它说RVM安装了Ruby 2.0.0版。当我试图告诉RVM使用这个版本时,它说它没有安装 看起来它可能已经被修复了。请尝试rvm get head,然后重试:您的屏幕截图未显示。谢谢!我已经更新了链接。我正在尝试另一个图像主机。谢谢!工作得很有魅力。现在我可以继续读你的书了。
我正在开发一个插件,插入一个名为latex的新液体标签(块标签)。其目的是通过以下方式在post源文件中插入一块LaTeX源代码:
... post file contents ...
{% latex density=300 usepackages=pstricks-all, %}
\pspicture(5,5)
\psframe(0,0)(5,5) \psline(0,0)(5,5) \psline(0,5)(5,0)
\endpspicture
{% endlatex %}
... pos
在尝试完成about_方法koans时,我在第39行和第42行一直遇到“type mismatch:String-given”错误。我的第一个问题是为什么会出错?我的第二个问题是,我如何能够用irb解决这个问题
科安
require File.expand_path(File.dirname(uuuu File_uuu)+'/neo')
定义我的全局方法(a、b)
a+b
终止
关于方法的课程
你能帮助我了解这个课程的功能以及我们如何利用它吗
class Integer
def myt
c=0
until c == self
yield(c)
c+=1
end
self
end
end
多谢各位
x = Integer.new
x.myt
我试着测试它,但不起作用。错误是:没有给定的块产量
此外,在我的书中,它说要像这样进行测试:
5.myt | |使我处
在Ruby中,给定一个数组:
{"server"=>["nginx/1.1.19"], "date"=>["Wed, 08 Jan 2014 18:48:02 GMT"],"content-type"=>["application/json; charset=utf-8"]}
将其转换为哈希的最佳方式是:
{"server"=>"nginx/1.1.19", "date"=>"Wed, 08 Jan 2014 18:48:02 GMT","content-type
所以我被告知重写这个问题并概述我的目标。他们让我对数组进行迭代,并“使用.each迭代频率,并将每个单词及其频率打印到控制台…在单词及其频率之间留出一个空格,以便于阅读。”
为什么它不能将字符串转换成整数?我做错了什么?我会按以下方式做:
puts "Type something profound please"
text = gets.chomp.split
我在这里调用了方法
我调用了下面的方法
现在运行代码:
(arup~>Ruby)$ ruby so.rb
Type someth
我试图创建一个数组,显示给定数字输入的每个数字排列。对于给定的输入123,数组应如下所示:
["123", "132", "213", "231", "312", "321"]
我可以得到一个包含独立数字数组的数组:
a = []
"123".split('').each {|n| a.push(n) }
arraycombinations = a.permutation(a.length).to_a
# => [["1", "2", "3"], ["1", "3", "2"], ["2
是否有可能在继承中获取匿名类的名称,而不引发失败?应该通过类对象创建而不是eval或类似
class A
def self.inherited(base)
raise 'fail A' unless base.name
end
end
B = Class.new(A)
# or
Object.const_set :B, Class.new(A)
上面的代码不起作用,因为匿名类尚未初始化,因此无法将其设置为特定常量。否
匿名类只有在被分配给常量(例如B=class.new.na
如何将散列的内容输出到excel/csv,并将键作为第一行和后续行中的值?我有以下内容,但由于我多次打开csv,因此效率不高
rowid = -1
CSV.open("file.csv", 'a') do |csv|
details.each do |hsh|
rowid += 1
if rowid == 0
csv << hsh.keys# adding header row (column labels)
else
csv &l
请告诉我使用安装rvm和默认使用ruby版本的最简单方法。
我的是
巴什福多
cwd "/home/user"
code <<-EOH
curl -sSL https://get.rvm.io | bash -s stable
rvm user gemsets
type rvm | head -n 1
EOH
end
bash-rvm-ruby-do
user "root"
cwd "
如何将从文档中获取的XML节点序列化为独立节点
文件使用node.to_xml是不够的,因为to_xml并不足够
输出所有需要的名称空间,仅输出其中显式声明的名称空间
那个节点
例如,我在doc中有这个XML文档
现在,record.to_xml返回重新格式化的
<record xml:id="r1">
<field>aaa</field>
<field extra:type="second">bbb</field>
我在想,在Ruby对象类中定义print方法不是很酷吗?考虑以下事项:
class Object
def print
puts self.to_s
end
end
23.times &:print
有这样的东西有什么问题吗?这似乎是一个很好的功能。它看起来也很容易阅读。已经有了定义。另外,在对象类和从其继承的每个类中,已经定义了私有方法
向对象添加方法的主要问题是,它们变得通用,并且可能与其他库或项目中类似命名的方法冲突
Ruby core中已经有多种简单的方法可以输
我正在尝试编写一个rails应用程序,它将创建用于评估的面板成员,因此在创建新面板时,我还希望创建作为系统用户的面板成员
当前,我的面板控制器创建看起来像
def create
@member = Member.new(member_params)
email_exists = @member.email
respond_to do |format|
if User.exists?(:email => email_exists) & Member.exists?(:emai
如何通过将脚本路径传递给padrino在padrino上下文中运行脚本?
我发现rails中也有类似的功能:
padrino网站:
说这可以通过运行
$ padrino r script/my_script.rb
但我得到了一个错误:
Could not find task "r".
这对我很有效我从[这里][1]读到的都是padrino rake…。[1]:
cat script/my_script.rb | padrino console
我正在建立一个数字基转换器。这是我的密码:
def num_to_s(num, base)
results = []
remainders = []
while base <= num
result = num / base #divide the initial value of num
num = result #put that back in num so you can do it again
results <&
我试图使用字符串的模函数%获取散列,并将其值注入字符串中的适当位置,但我始终收到键{x}未找到(KeyError),即使我可以确认键在那里。我做错了什么
s = "Invalid: %{totalInvalid} , OutofThreshold: %{totalOutOfThreshold} "
puts row.fetch ('totalInvalid') #<-Just checking to make sure the key is in there
ext = s % row
我试图找出是否有办法让JRuby提示输入丢失的密码(就像Ruby那样)
调用OpenSSL::PKey::RSA.new时,无需密码
例如,给定此脚本:
# example.rb
require 'openssl'
def test pemkey_text, pemkey_pass
puts "Decrypting key using password #{pemkey_pass.inspect}"
begin
key = OpenSSL::PKey::RSA.new pemk
我有一个页面,允许用户选择过滤器以运行查询,然后显示给定结果的结果,但保留所选过滤器以允许用户查看并调整它们,然后再次运行查询
过滤器显示在索引视图中,结果显示在结果视图中
为了实现这一点,我有一个控制器,它有两种方法:索引和结果
因为两个视图都需要显示过滤器,所以我实现了一个称为_filters的部分视图
索引和结果都会呈现这样的过滤器
<%= render 'filters' %>
filters视图将这样一个HTML选择放在一起
<select id="centro_d
我想写一个谷歌搜索刮刀/解析器,从谷歌的linkedin.com索引中提取员工。Linkedin关闭了他们的API,所以我先写了一个Mechanize/Nokogiri刮板,这让我得到了验证码,所以我用谷歌搜索API gem重写了脚本
问题是,我不知道从哪里开始让它带来比第一页更多的结果,官方文件甚至不能被描述为“稀疏”
这是仅返回第1页的代码:
require 'rubygems'
require 'google/api_client'
require 'json'
require 'pp'
我想用考拉做一个facebook测试用户,并想访问他们的电子邮件,所以我问了这个问题
但是这个问题被标记为重复,我会问一些不同的问题
我尝试的是这样的:
test_users = Koala::Facebook::TestUsers.new(app_id: ENV['FACEBOOK_KEY'], secret: ENV['FACEBOOK_SECRET'], scope: 'email')
test_user = test_users.create(true)
test_user
=
标签: Ruby
watirwatir-classic
我有Ruby 2.2,每次出现相同的错误时,我都无法从命令提示符下运行任何文件.rb:
C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- dl/import (LoadError)
from C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kerne
在我的应用程序中,我使用后台作业将工作卸载到后台。这与IO操作一样,适用于CPU密集型操作。我想知道在异步请求的情况下是否有这样的偏好。我的意思是,我还使用BG作业使我的请求异步,考虑到其他一些替代方法,如EventMachine,我觉得这不是最好的方法
那么,实现异步请求的最佳实践是什么呢?假设您在这里讨论的是Rails 4:
Rails ActionController::Live模块,请签出。
WebSocket是其实现的包装器之一。
websocket rails gem最后一次更新是在
我有一个目录,里面有一堆没有标题的CSV文件
我试着这样做:
def add_headers_to_csvs
csvs = Dir["#{@dir_name}/#{@state}/*.csv"]
csvs.each do |csv_file|
CSV.open(csv_file, "a+", write_headers: true, headers: ["Company_Name","Website","Street_Address", "City", "State", "Zip
我构建了一个json块,如下所示:
data = {
"url" : "http://www.example.com/post",
"postdata" : [
{ "key1" : "value1" },
{ "key2" : "value2" },
{ "key3" : "value3" },
{ "key4" : "value4" },
{ "key5" : "value5" },
我试图理解符号在Ruby中的作用。我知道使用符号作为键比使用字符串快得多,效率也高得多,但它是如何更快的呢
根据我的理解,当引用方法时,它必须表示为一个符号:to_i,而不是_i。这样做的目的是什么?在Ruby中,符号只是一个不可变的字符串:
"hello " + "world" #=> "hello world"
:hello_ + :world #=> NoMethodError: undefined method `+' for :hello:Symbol
不可变使符号成为安
我有一个杂烩:
h = { ["alpha"]=>[{ "bit"=>"100", "colour"=>"red"},
{ "id"=>"100", "colour"=>"red"},
{ "value"=>"65", "colour"=>"red"}],
["beta"] =>[{ "id"=>"070", "colour"=>"black"
我想用下划线替换空格和正斜杠,并保留反斜杠
我该怎么做
我有以下正则表达式:
"hello\h /123".gsub(/[\s+\/]/, "_")
#=> "helloh__123"
但它也会替换字符串中的反斜杠。因此,如果您只想转换空格和带下划线的斜杠,您可能更喜欢:
"hello\h /123".tr('/ ','__') # 2nd arg is two underscores
#=> "helloh__123"
但我同意到目前为止对这个问题的评论。双引号字符串文本中的反
我的ApplicationHelper中有一个降价方法,我想编写一个简单的单元测试:
def markdown(text)
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML)
markdown.render(text).html_safe # tried wihout html_safe too
end
每当我编写RSpec测试时,它总是失败。我尝试了三种不同的方法:
expect(helper.markdown('#
这是一个例子:
Puts "#{input}"
If input == "Hello" || "hello". <== What to be able to enter same word but lower case and uppercase
Puts "nice to meet you"
Elsif input == "Bonjour" || "bonjour"
Puts "that's french"
Else
Puts "user input "
End
put“#{
在ruby程序中,有一个单独的Gem文件,其中包含以下定义:
source "https://rubygems.org"
gem "typhoeus"
gem "json"
gem "pg"
gem "google_drive" , "2.1.11"
gem "mandrill-api"
如果出于某种原因我不想要这个gem文件,那么在ruby脚本中,我需要为所有库添加require,
例如:
require typhoeus
require json
require pg
re
如果我有这样一个函数:
def foo(a="this", b="this", c="this")
end
是否有一些选项可以同时为它们设置默认值?比如:
def foo(DEFAULT="this", a, b, c)
end
元编程局部变量
如果您试图创建可以重写的位置方法局部变量,那么可以使用当前方法使用一些元编程。例如:
def foo a=nil, b=nil, c=nil
%i[a b c].ma
我正在编写一个“bot”,它将有一个预定义操作的列表,并且在处理每个操作时,操作代码将能够向队列中添加更多操作,作为下一个要处理的操作(而不是在最后)
假设我将使用动作A、B和C启动队列,在处理B时,它会在C之前添加需要处理的B1和B2。将处理动作的最终顺序保留为B B1 B2 C
一个普通的FIFO队列不会切断它,因为项目只能添加到队列的末尾
我相信,一个普通的后进先出堆栈也不行
在这个场景中,您将使用什么?我将使用某种树
首先它进入A。检查A是否有叶子,如果没有,移动到B。
在B中,它执行B
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 2332 页