根据@object中的位置/索引获取属性的值?
问题描述:
我想弄清楚如何获取对象属性的索引值。和搜索堆栈和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)
答
使用SQL/ActiveRecord的,你可以使用limit
和offset
方法应用到 “集团参加” 关系:
# 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
您的组模型是否具有'has_many:participants'关系? – Jef 2012-02-03 15:39:45
Jef:是的,它已经像has_many:参与组模型内的参与者 – Rubytastic 2012-02-03 15:41:11