草庐IT

iPhone:可变长度的UILabel,多行字符串,多种字体

全部标签

ruby-on-rails - 使用字符串属性键而不是符号的 Factory Girl?

当我调用Factory.attributes_for(:some_class)时,我显然得到了该类的属性散列。{:attribute_one=>"hello",:attribute_two=>"goodbye"}有没有一种方便的方法来使用字符串键而不是符号来检索此属性散列?{"attribute_one"=>"hello","attribute_two"=>"goodbye"} 最佳答案 xdazz的答案是一个不错的选择,但如果您想实际将键转换为字符串而不是无动于衷地访问哈希,您可以使用stringify_keysFactory.a

带有嵌入变量的 Ruby 字符串

如何在yaml中存储带有嵌入变量的ruby​​字符串,但仅当我从yaml获取字符串时才插入变量值? 最佳答案 str="Hi%{name},%{msg}.Bye%{name}."#yamlit,de-yamlitbacktostringh={:name=>"John",:msg=>"thismessageisforyou"}putsstr%h#=>HiJohn,Thismessageisforyou.ByeJohn. 关于带有嵌入变量的Ruby字符串,我们在StackOverflow上找

ruby - 在将字符串写入日志文件之前从字符串中删除颜色装饰

我这样使用ruby​​记录器:$logger=Logger.newMultiIO.new($stdout,log_file)MultiIO是我从thisanswer得到的一个类.这在大多数情况下效果很好,但我正在使用'colored'ruby​​gem在终端上提供彩色输出。不幸的是,这也最终出现在日志文件中,因为ANSI转义看起来像[32mPASS[0m或一些类似的不可打印字符垃圾。清理日志文件字符串同时保持tty字符串颜色的最佳方法是什么?我不介意猴子修补Logger或MultiIO,但我绝对不希望对日志文件和屏幕进行两次不同的调用。 最佳答案

ruby - 在 ruby​​ 字符串中正确使用 gsub

我有这样的表达:channelName=rhash["Channel"].gsub("'","")它工作正常。但是,我只能用它替换1个字符。我想再添加几个字符来替换。所以我尝试了以下方法:channelName=rhash["Channel"].gsub(/[':;]/,"")这不起作用,即没有对字符串进行替换,也没有错误消息。我也试过这个:channelName=rhash["Channel"].gsub!("'","")这导致了一个空白的字符串。所以绝对不是我想要的。我想要一个gsub方法来用我的字符串中的空格替换以下字符:';:我的问题:如何构造我的gsub方法,以便将上述字符的

ruby - 将散列转换为名称-值对的字符串

如果我将ruby​​散列转换为名称-值对字符串(例如,用于HTTP参数),这是最好的方法吗?#Definethehashfields={"a"=>"foo","b"=>"bar"}#Turnitintothename-valuestringhttp_params=fields.map{|k,v|"#{k}=#{v}"}.join('&')我想我的问题是:是否有更简单的方法来访问http_params?诚然,上述方法有效并且相当简单,但我很好奇是否有一种方法可以在不首先创建数组(map方法的结果)的情况下从散列获取字符串? 最佳答案

ruby - 如何匹配不在两个特殊字符之间的正则表达式?

我有这样一个字符串:abcab"ab"ba"a"如何匹配不是由"分隔的字符串的一部分的每个a?我想匹配此处加粗的所有内容:abcab"ab"ba"a"我想替换那些匹配项(或者更确切地说,通过用空字符串替换它们来删除它们),因此删除引用的匹配部分将不起作用,因为我希望它们保留在字符串中。我正在使用Ruby。 最佳答案 假设引号正确平衡并且没有转义引号,那么很容易:result=subject.gsub(/a(?=(?:[^"]*"[^"]*")*[^"]*\Z)/,'')当且仅当匹配的a前面有偶数个引号时,这会将所有a替换为空字符串。

ruby-on-rails - 默认情况下如何使用字符串键创建哈希

当我执行以下操作时:h={"a":123}Ruby自动将键转换为符号。h[:a]#=>123h["a"]#=>nil如何防止这种行为?我用字符串键创建了散列,并希望保持这种状态,而不必总是调用Hash#stringify_keys。 最佳答案 使用哈希火箭语法:h={"a"=>123}#=>{"a"=>123}h['a']#=>123 关于ruby-on-rails-默认情况下如何使用字符串键创建哈希,我们在StackOverflow上找到一个类似的问题: h

ruby - 通过 Ruby 拆分字符串以获取所有子字符串的最佳方法是什么?

比如单词“stack”,我想得到一个像这样的数组:['s','st','sta',...'stack','t','ta',...,'c','ck','k']我是通过这样的代码做到的:defsplit_word(str)result=[]chas=str.split("")len=chas.size(0..len-1).eachdo|i|(i..len-1).eachdo|j|result.push(chas[i..j].join)endendresult.uniqend有没有更好、更干净的方法来做到这一点?谢谢。 最佳答案 defs

Ruby,检查字符串是否都是有效的十六进制字符?

我必须检查4个字符的字符串是否都是有效的十六进制,我发现了另一个问题,它准确地演示了我想做什么,但它是Java:RegextocheckstringcontainsonlyHexcharacters我怎样才能做到这一点?我阅读了有关正则表达式的ruby​​文档,但我不明白如何根据此匹配项返回true或false? 最佳答案 在ruby​​正则表达式中,\h匹配一个十六进制数字,\H匹配一个非十六进制数字。所以!str[/\H/]就是您要查找的内容。 关于Ruby,检查字符串是否都是有效的

ruby-on-rails - 检查字符串是否在 Rails 中全部大写

我想检查Rails中的字符串是否全部为大写字母。我该怎么做?我正在编写自己的自定义复数化辅助方法,我会传递诸如“WORD”之类的词,有时是“Word”——我想测试我的词是否全部大写,这样我就可以返回“WORDS”——用如果单词是复数形式(相对于“WORDs”),则末尾大写“S”。谢谢! 最佳答案 这样做:str==str.upcase例如:str="DOG"str==str.upcase#truestr="cat"str==str.upcase#false因此您的场景代码将是:#Inthecodebelow`upcase`isreq