Получение значения атрибута на основе его позиции / индекса внутри @object? - PullRequest
0 голосов
/ 03 февраля 2012

Я пытаюсь выяснить, как получить значение индекса атрибута объектов. И после поиска стека и railsapi я все еще не уверен, как мне подойти к этому

    @groups = Group.where(:group_id => 1).first
  • Модель групп будет содержать атрибуты: member_id и has_many: участники

Как можно получить: member_id на основе его индекса? Например, как получить первый и третий: member_id на основе его позиции?

Что-то вроде:

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

1 Ответ

1 голос
/ 03 февраля 2012

Используя 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]

Или комбинация обоих подходов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...