我想我在这里遗漏了一些东西.我有一个这样的目录:
myapp
|-lib
|-package1
|-dostuff.rb
|-package2
|-dostuff.rb
从一个irb控制台我想测试库之前,我把它添加到我的实际项目(一个Rails应用程序).但是,输入以下内容:
require 'lib/package1/dostuff'
Run Code Online (Sandbox Code Playgroud)
返回错误,说它无法找到要加载的文件.我将lib目录添加到加载路径但我无法加载该文件.
我忘记了什么?这两个文件名不必相同,但它们是如何开始的(它们是从我需要使用soap4r调用的一些Web服务自动生成的;每个包代表一个不同的Web服务API组)
我有一个红宝石哈希:
VALS = { :one => "One", :two => "Two" }
Run Code Online (Sandbox Code Playgroud)
和一个数组:
array2 = ["hello", "world", "One"]
Run Code Online (Sandbox Code Playgroud)
问题:如何填充新的array1,以便它只引入array2中与VALS中的值完全匹配的任何值?
例如,我试过:
array2.each_with_index do |e,i|
array1 << e if VALS[i] ~= e
end
Run Code Online (Sandbox Code Playgroud)
和其他东西一起,没有工作.菜鸟.
谢谢
辉煌!但是我尝试过:
p array.select { |i| hash.has_value? i ? array[i+1] : "foo"}
Run Code Online (Sandbox Code Playgroud)
我有一个无法转换fixnum错误.我肯定错过了什么.
我做的事情sudo gem install json.然后我做irb.然后我做require 'json'.然后它说no such file to load -- json
假设我做的很简单,.each但我仍然希望保持循环中的位置,我可以这样做:
i = 0
poneys.each do |poney|
#something involving i
#something involving poney
i = i + 1
end
Run Code Online (Sandbox Code Playgroud)
这对我来说看起来不太优雅.所以我想我可以摆脱.each:
for i in 0..poneys.size-1 do
#something involving i
end
Run Code Online (Sandbox Code Playgroud)
...或类似的不同语法.
问题是如果我想访问我必须做的对象:
for i in 0..poneys.size-1 do
poney = poneys[i]
#something involving i
#something involving poney
end
Run Code Online (Sandbox Code Playgroud)
......那也不是很优雅.
有这么好的干净方式吗?
假设我有一个多维哈希,并且在其中一个子哈希中我有一个key => value对,我需要通过key检索它.我该怎么做?
示例哈希:
h={:x=>1,:y=>2,:z=>{:a=>{:k=>"needle"}}}
h={:k=>"needle"}
Run Code Online (Sandbox Code Playgroud)
关键是永远:k,我需要得到"针"
我注意到红宝石1.8中的哈希没有"扁平"功能,但如果它在那里,我想我会做的
h.flatten[:k]
Run Code Online (Sandbox Code Playgroud)
我想我需要为此编写一个递归函数?
谢谢
我认为可以在这样的特征类中定义attr_accessor方法:
class IOS
@@modules_paths = "hello"
class << self
attr_accessor :modules_paths
end
end
puts IOS::modules_paths
Run Code Online (Sandbox Code Playgroud)
但这没有任何回报.
有办法吗?
我正在尝试删除URL的网页部分
例如,
www.example.com/home/index.html
Run Code Online (Sandbox Code Playgroud)
至
www.example.com/home
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.
谢谢
我是从python到ruby的newibe.
在python中有一个如下功能:
a=range(3)
b=range(3)
for e1,e2 in zip(a,b)
print e1,e2
Run Code Online (Sandbox Code Playgroud)
有什么东西可以在ruby中实现相同的功能吗?
我是Ruby的新手
MakModule.rb
module Display
class Multiply
def Multiply.mul(first, second)
return first * second
end
end
end
Run Code Online (Sandbox Code Playgroud)
MakRequire1.rb
require "Display"
puts Multiply.mul 5,6
Run Code Online (Sandbox Code Playgroud)
MakRequire2.rb
require "MakModule.rb"
puts Multiply.mul 5,6
Run Code Online (Sandbox Code Playgroud)
两个文件都给我下面的错误
ruby: No such file or directory -- makRequire (LoadError)
Run Code Online (Sandbox Code Playgroud)
我应该如何更正我的代码?
我一直对自己说,一定有更好的方法,但我现在看不到它......想法?
i = 0; lose = 0; win = 0
while i < @array.size
results = @array[i].results
q = 0
while q < results.size
if results[q].to_i == 0 then
lose += 1
elsif results[q].to_i == 1 then
win += 1
else
puts results[q]
puts "false"
end
q += 1
end
i+=1
end
if win == lose then
puts "true"
else
puts "false"
end
Run Code Online (Sandbox Code Playgroud)