0

我想弄清楚如何获取对象属性的索引值。和搜索堆栈和railsapi后,我仍然不知道我应该怎么处理这个根据@object中的位置/索引获取属性的值?

@groups = Group.where(:group_id => 1).first 
  • 组模型将包含属性:participant_id和的has_many:参与者

一个人怎么就能够根据其索引得到a:participant_id? 例如,如何获取第一个和第三个:participant_id基于其位置?

喜欢的东西:

= @group.participant_id(index position 1) 
= @group.participant_id(index position 3) 
+0

您的组模型是否具有'has_many:participants'关系? – Jef 2012-02-03 15:39:45

+0

Jef:是的,它已经像has_many:参与组模型内的参与者 – Rubytastic 2012-02-03 15:41:11

回答

1

使用SQL/ActiveRecord的,你可以使用limitoffset方法应用到 “集团参加” 关系:

# First 
@group.participants.order(:id).offset(0).limit(1) 
# Second 
@group.participants.order(:id).offset(1).limit(1) 
# First, second and third 
@group.participants.order(:id).offset(0).limit(3) 

或者,如果要加载所有参与者在单个SQL查询中:

@group.participants.order(:id)[index] 

或ac组合这两种方法。

+0

谢谢Diden't想使用偏移量,可能在db上有点密集,但现在看起来这是一个很好的解决方案,从thx开始! – Rubytastic 2012-02-06 07:03:48

相关问题