草庐IT

ruby - 从哈希数组中收集值

我有以下格式的数据结构:data_hash=[{price:1,count:3},{price:2,count:3},{price:3,count:3}]有没有一种有效的方法来获取:price的值作为[1,2,3]的数组? 最佳答案 首先,如果您使用的是ruby​​array=[{:price=>1,:count=>3},{:price=>2,:count=>3},{:price=>3,:count=>3}]然后得到你需要的:array.map{|x|x[:price]} 关于ruby-

ruby - 测试变量是否等于两个值之一

我想测试a是否等于1或2我能做到a==1||a==2但这需要重复a(这对于较长的变量来说会很烦人)我想做类似a==(1||2)的操作,但显然这是行不通的我可以做[1,2].include?(a),这还不错,但让我觉得有点难以阅读只是想知道如何使用惯用的ruby​​来做到这一点 最佳答案 您的第一个方法是惯用的Ruby。不幸的是,Ruby没有等同于Python的ain[1,2],我认为后者会更好。你的[1,2].include?a是最接近的替代方案,我认为它与最自然的方式有点倒退。当然,如果你经常使用它,你可以这样做:classObj

ruby-on-rails - 如何为 f.select 表单字段设置空白值

我正在使用以下内容允许我的用户在他们的个人资料中选择他们的性别。如果没有向user.sex列传递任何内容,我将如何创建列表默认的空白值?我只是将male或female作为字符串传递。目的是我想要一个空白值,这样验证可以确保他们知道他们必须选择它。 最佳答案 有两种可能性,具体取决于您的追求:include_blanktrue)%>这将始终在选择中包含一个空白选项,这将允许人们在编辑表单上看到此值时将值设置回空白值。提示"Gender...")%>这将包括指定的提示值,只要该字段尚未设置。如果它有(例如在编辑表单上),则无需提醒用户他

ruby - 使用哈希值渲染 ERB 模板

我一定是忽略了一些非常简单的东西,但我似乎无法弄清楚如何使用散列映射中的值呈现一个简单的ERB模板。我是ruby​​的新手,来自python。我有一个ERB模板(不是HTML),我需要使用从外部源接收的散列映射中获取的上下文来呈现它。然而,ERB的文档指出,ERB.result方法需要一个binding。我了解到它们是在ruby​​中保存变量上下文的东西(我想是python中的locals()和globals()吧?)。但是,我不知道如何从HashMap构建绑定(bind)对象。一点点(实际上是很多)谷歌搜索给了我这个:http://refactormycode.com/codes/2

ruby - 根据整数值创建包含 n 个项目的数组

假设我有一个整数值,例如10。如何创建一个包含10个元素的数组,如[1,2,3,4,5,6,7,8,9,10]? 最佳答案 你可以直接拼出一个范围:[*1..10]#=>[1,2,3,4,5,6,7,8,9,10]Ruby1.9允许多个splats,这非常方便:[*1..3,*?a..?c]#=>[1,2,3,"a","b","c"] 关于ruby-根据整数值创建包含n个项目的数组,我们在StackOverflow上找到一个类似的问题: https://sta

Ruby 按多个值排序?

我有一个哈希数组:a=[{'foo'=>0,'bar'=>1},{'foo'=>0,'bar'=>2},...]我想先按每个散列的“foo”对数组进行排序,然后按“bar”进行排序。Google告诉我这是如何完成的:a.sort_by{|h|[h['foo'],h['bar']]}但这给了我ArgumentError“Array与Array的比较失败”。这是什么意思? 最佳答案 a.sort{|a,b|[a['foo'],a['bar']][b['foo'],b['bar']]} 关于R

ruby-on-rails - 如何计算在 ROR 的特定字段中具有唯一值的记录数?

我有一个包含日期字段的记录集,我想确定记录集中有多少个唯一日期。类似于:Record.find(:all).date.unique.count当然,这似乎行不通。 最佳答案 这在rails4和更高版本中略有变化:distinct=>true现在已弃用。使用:Record.distinct.count('date')或者如果你想要日期和数字:Record.group(:date).distinct.count(:date) 关于ruby-on-rails-如何计算在ROR的特定字段中具有唯

ruby - capybara :按值而不是文本选择选项

对于HTMLTue4Sep2012Wed5Sep2012Thu6Sep2012我有以下CapybaraRuby代码:select"20120905",:from=>"date"但是这个错误是:cannotselectoption,nooptionwithtext'20120905'inselectbox'date'(Capybara::ElementNotFound)但是,如果我这样做select"Wed5Sep2012",:from=>"date"没关系。是否可以通过Value而不是Text在Capybara中选择一个选项?谢谢 最佳答案

ruby-on-rails - 如何将单个列的值放入数组中

现在我正在做这样的事情来选择一列数据:points=Post.find_by_sql("selectpointfromposts")然后将它们传递给一个方法,我希望我的方法保持不可知,现在必须从我的方法中调用hash.point。如何快速将其转换为数组并将数据集传递给我的方法,或者有更好的方法吗? 最佳答案 在Rails3.2中有一个pluckmethod为此就像这样:Person.pluck(:id)#SELECTpeople.idFROMpeoplePerson.pluck(:role).uniq#uniquerolesfrom

ruby-on-rails - 如何检查值是否为数字?

我只想检查表单文本字段的返回值是否为数字,即:12、12.5或12.75。有没有一种简单的方法来检查这一点,尤其是当值作为param提取时? 最佳答案 你可以使用12.is_a?Numeric(Numeric适用于整数和float。)如果它作为可能包含有效数字表示的字符串到达​​,您可以使用classStringdefvalid_float?trueifFloatselfrescuefalseendend然后'12'.valid_float?如果您可以将字符串转换为有效的float(例如使用to_f),则将返回true。