首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails的每个循环都有从到

rails的每个循环都有从到
EN

Stack Overflow用户
提问于 2014-04-16 04:38:32
回答 2查看 506关注 0票数 3

在我的控制器中,我为对象组织获取了9行。

代码语言:javascript
复制
  @organizations = Organization.where(parent_id: 1).order(city_id: :asc, is_vip: :desc, title: :asc).limit(25).sample(9)

然后在视图中,我必须将这个9值分隔成3个视图循环,就像第一个.each对行的1-3、第二个对4-6、第三个对6-9所做的那样

我试着这样做:

代码语言:javascript
复制
- @organizations[0..2].each do |org|
...
- @organizations[3..5].each do |org|
...
- @organizations[6..8].each do |org|
...

但是看起来我做错了什么,但到底是什么呢?怎样做才是正确的?

EN

回答 2

Stack Overflow用户

发布于 2014-04-16 04:45:06

不确定您的数据重复的原因。但是,您可以使用以下方法将数组拆分为片

您可以使用each_slice

代码语言:javascript
复制
@organization.each_slice(3) do |sliced_orgs|
end

一些文档here

票数 5
EN

Stack Overflow用户

发布于 2014-04-16 06:42:01

首先,我真的不明白你为什么要使用.limit(25).sample(9),你可以把结果限制在9个。但也许你对sample引入的随机因子有一些用处?真奇怪。

除此之外,

代码语言:javascript
复制
@organizations[0..2].each do |org|
    puts org
end
...

应该可以很好地工作。如果数据重复,这是因为您的模型中有多次相同的条目。sample(9)采用随机的唯一条目,而@organizations[0..2]是一个固定范围,返回一个数组或nil。(Rubydoc:ary[range] → new_ary or nil)

简而言之,代码没有问题,但可能是数据/逻辑中的某个地方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23094061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档