在IRB中编写一个简单的条件语句
问题描述:
我正在查找URL为“http://”的所有组织,并将其属性更新为“”。在IRB中编写一个简单的条件语句
我尝试:
Organization(:all).select { |o| o.url = "http://" ? o.update_attribute("url","")}
它返回一个编译错误:
SyntaxError: compile error
(irb):2: syntax error, unexpected '}'
from (irb):2
任何想法?
答
尝试使用update_all
Organization.update_all("url = ''", ["url =?",'http://'])
答
我绝不是一个红宝石专家,但我的第一个怀疑是你使用赋值运算符(=)而不是等号运算符(==)。快速谷歌搜索“ruby irb条件”似乎证明了这一点。
而且您可能因为没有在您的问题中包含编译错误而得到反对票。如果我的猜测是错误的,我甚至无法帮助解释错误信息,因为您没有提供它。
更新:根据对答案的第一个评论,我相信我的第一个怀疑是错的 - 错误地解释了代码行的意图。但是,那么当错误消息不可用时就会发生这种情况。
UPDATE2:第一条评论不存在...也许它已被删除或也许我开始在错误的地方打字...
+0
感谢@atk。我正在读这篇文章。试过了双等号操作符。相同的编译错误。我想这是我的语法。尽管如此,我很欣赏帮助。 – Trip 2010-06-10 19:31:41
辉煌。我不知道如何使用这样的条件。非常非常感谢你。 – Trip 2010-06-10 19:35:22
你正在尝试的方式可以这样完成: 组织(:all).select {| o | o.update_attribute(“url”,“”)如果o.url ==“http://”} 您正在使用的三元运算符('?')在此之后期待一个':'和第二个条件。但它遇到了一个'}',所以引发了一个错误。 – Garfield 2010-06-10 19:43:50
@上坡:好的回答.. – bragboy 2010-06-11 05:18:38