根据@object中的位置/索引获取属性的值?

时间:2012-02-03 15:37:02

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 attributes indexing

我正在试图弄清楚如何获取对象属性的索引值。在搜索堆栈和railsapi之后,我仍然不确定我应该如何处理这个

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

如何根据索引获得:participant_id? 例如,如何根据其位置获取First和Third:participant_id?

类似的东西:

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

1 个答案:

答案 0 :(得分: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]

或者两种方法的结合。