Ruby支持递归数组(即自包含数组):
a = []
# => []
a << a
# => [[...]]
a.first == a
# => true
Run Code Online (Sandbox Code Playgroud)
这本质上很酷,但你可以用它做什么工作?
今天,我注意到我向LinkedIn公司页面发送股票的所有API调用都返回以下错误:
参数无效:{S_412_PRECONDITION_FAILED =参数无效}
我正在使用XML格式.我尝试将相同的份额分配给LinkedIn帐户,但效果非常好.
这是我的xml请求:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<share>
<comment>Comment</comment>
<content>
<title>title</title>
<description>description</description>
<submitted-url>URL</submitted-url>
<submitted-image-url>IMAGE_URL</submitted-image-url>
</content>
<visibility>
<code>anyone</code>
</visibility>
</share>
Run Code Online (Sandbox Code Playgroud)
LinkedIn API是否有重大变化?
也就是说,对于任何String string,以下是否保持?
string.pluralize == string.pluralize.pluralize
Run Code Online (Sandbox Code Playgroud) 我想建立一个永久重定向的每个路径,从开头/articles的类似路径开始/blog.
我知道如何在路线中单独重定向路径,例如
match "/articles/" => redirect("/blog/")
但是,如果我也想重定向诸如路径/articles/:id和/articles/category/:id等等,我需要有明确的重定向对于那些为好.
我希望有一种方法可以一举重新定位所有这些路径,现在和将来.
我意识到我可以在控制器中用a来相对容易地做到这一点before_filter,但我相信这种行为属于路线,我希望将它保留在那里.
(我只编写了几周,这是我的第一个问题,所以请耐心等待!)
在ruby中,我知道你可以在一行上初始化多个变量,如下所示:
a, b = 1, 2
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否可以在一个也生成其名称的循环中初始化多个变量.这是一些解释我的意思的伪代码:
For X between 0 and 3, even_X = X * 2
Run Code Online (Sandbox Code Playgroud)
这将设置even_0 == 0,even_1 == 2,even_2 == 4,和even_3 == 6.
我意识到通过迭代创建一个数组然后调用它的成员可以实现相同的功能,但我仍然很好奇是否有办法做到这一点.
谢谢!
假设我有一个非空ids的Thing对象id 数组,我想找到相应的对象things = Thing.find_all_by_id(ids).我的印象是,things不一定会有类似的顺序ids.
我的印象是否正确?
如果是这样,我可以使用什么而不是find_all_by_id保留订单并且不会多次不必要地访问数据库?
假设您有一组跑步者:
runners = [al, betty, chris, debby]
Run Code Online (Sandbox Code Playgroud)
而且你有一个方法time可以在比赛中返回跑步者的时间.
在time方法总是返回一个浮点数的情况下,我知道您可以使用sort_by以下方法对运行者进行排序:
runners.sort_by do |runner|
runner.time
end
Run Code Online (Sandbox Code Playgroud)
但是,假设time有时返回一个字符串,比方说"disqualified".在那种情况下,你会如何按时间对跑步者进行排序,不合格的跑步者会持续多久?如果你想让不合格的跑步者先或在其他位置怎么办?
我编写了一个定期运行的任务,用于重新计算和更新Active Record模型的特定列中的信息.通常,新计算的对象(如果重要的话,它是json编码的哈希)将与现有对象相同.在这种情况下,我怀疑检查此身份并中止保存而不是保存可能更有效.因此,我正在考虑使用self.save! if changed?而不仅仅是self.save!.我的问题是:
if changed?条件来节省CPU时间?(如果我在这里误用了一些术语,我很抱歉.我是游戏的新手.)
考虑以下两个琐碎的模型:
class Iq
def score
#Some Irrelevant Code
end
end
class Person
def iq_score
Iq.new(self).score #error here
end
end
Run Code Online (Sandbox Code Playgroud)
以下Rspec测试:
describe "#iq_score" do
let(:person) { Person.new }
it "creates an instance of Iq with the person" do
Iq.should_receive(:new).with(person)
Iq.any_instance.stub(:score).and_return(100.0)
person.iq_score
end
end
Run Code Online (Sandbox Code Playgroud)
当我运行此测试(或者更确切地说,类似的测试)时,看起来存根没有工作:
Failure/Error: person.iq_score
NoMethodError:
undefined method `iq_score' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
正如您可能猜到的那样,失败在上面标记为"错误"的行上.当该should_receive行被注释掉时,此错误消失.这是怎么回事?
ruby ×5
activerecord ×2
arrays ×1
expectations ×1
idempotent ×1
linkedin ×1
linkedin-api ×1
plural ×1
recursion ×1
rspec ×1
sorting ×1
string ×1
stubbing ×1
testing ×1
url-routing ×1