Tag: 每个

Rails .each显示一次重复结果

在rails .each代码中,如何从结果中消除重复? PMRelationships是一个链接人和电影的关系表MGRelationships是一个链接流派和电影的关系表 我正在寻找的过程是通过第一个PmRelationship然后MgRelationship找到All a Person的类型 @person.id) %> @movie.id) %> 例如,此代码返回值列表,如下所示: 动作动作喜剧惊悚冒险黑色行动 我怎样才能使它删除两个Lorems而只显示一个Lorems 基本上,摆脱任何重复以返回列表 动作喜剧惊悚冒险黑色 UPDATE 我已经更改了我的简化代码以匹配我的实际应用程序 我知道大部分需要在控制器中,但简化的缘故我首先在视图中这样做 那些可以提到我不需要创建_Relationship表并且可以简单地使用模型has_many_belongs_to等的人注意到,我发现关系表方法更容易处理和控制 感谢和混淆道歉

Ruby中的解析器:#slice! 在里面#each_with_index =缺少元素

让我们说,我想从数组中分离元素的某些组合。 例如 data = %w{ start before rgb 255 255 255 between hex FFFFFF after end } rgb, hex = [], [] data.each_with_index do |v,i| p [i,v] case v.downcase when ‘rgb’ then rgb = data.slice! i,4 when ‘hex’ then hex = data.slice! i,2 end end pp [rgb, hex, data] # >> [0, “start”] # >> […]

如何在Ruby中重新创建(每次创建新的)数组?

我错过了为每对数字创建新数组然后把每一对的总和? 顺便说一句,是否有可能通过’,’在一行输入一对数字? arr = [] sum = 0 puts “How much pair of numbers do you want to sum?” iter = gets.to_i iter.times do |n| puts “Enter pair of numbers: ” a = gets.to_i b = gets.to_i arr << a arr << b end iter.times do |n| puts "Here are the sums: " arr.each { […]

我如何certificateRuby`for`循环实际上是使用`each`方法实现的?

在Eloquent Ruby(第21页,第一版,第六版)中 ,作者(Russ Olsen)主张使用each方法而不是for循环,这与我在其他地方读过的所有内容一致。 然而,作者还接着说,这样做的一个原因是for循环实际上调用了each方法,那么为什么不切断中间人并使用each呢? 所以我想知道这实际上是如何工作的。 为了调查我确实搜索了github上的Ruby repo,但发现很难确定我在哪里/如何看到这个。 重申一下这个问题: 如何显示Ruby for循环实际上是使用each方法实现的?

不能用`map`替换’each`的全部或大多数情况?

Enumerable#each和Enumerable#map之间的区别在于它是返回接收者还是映射结果。 回到接收器是微不足道的,你通常不需要像each{…}.another_method之后继续一个方法链。另一个方法(我可能还没有看到这种情况。即使你想回到接收器,你可以用tap来做到这一点)。 所以我认为使用Enumerable#each所有或大多数情况都可以被Enumerable#map替换。 我错了吗? 如果我是对的, each的目的是什么? map比each慢吗? 编辑 :我知道当您对返回值不感兴趣时​​,通常会使用each 。 我对这种做法是否存在并不感兴趣,但我对这种做法是否有意义感兴趣,而不是从惯例的角度来看。

Ruby数组一次访问2个连续(链接)元素

现在,这是arrays, [1,2,3,4,5,6,7,8,9] 我想要, [1,2],[2,3],[3,4] upto [8,9] 当我这样做时,每个我都得到了(2), [[1,2],[3,4]..[8,9]] 我目前这样做, arr.each_with_index do |i,j| p [i,arr[j+1]].compact #During your arr.size is a odd number, remove nil. end 有没有更好的办法??

关于ruby系列?

像这样 range = (0..10) 我怎么能得到这样的数字: 0 5 10 每次加5次但不到10次 如果range =(0..20)那么我应该得到这个: 0 5 10 15 20