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

相關問題