Невозможно перебрать атрибуты объекта - PullRequest
0 голосов
/ 17 марта 2020

Я хочу получить доступ к значению document_id в переменной экземпляра DocumentUser и добавить его в массив. Однако, хотя функция ids определена и я могу получить к ней доступ id, для этого класса не определена функция document_ids. Я мог бы go опередить и определить его, но мой вопрос - могу ли я получить доступ к значению document_ids, не делая этого, возможно, каким-то образом используя функцию map (что меня смущает)? Я думал, что мог бы пройтись по модели, так как она выглядит так, как будто она возвращает массив, но без кубиков. Спасибо!

[110] pry(#<#<Class:0x00007f99646b1b60>>)> @current_user.document_users.each { |n| puts n }
#<DocumentUser:0x00007f9957cce118>
=> [#<DocumentUser:0x00007f9957cce118
  id: 382,
  user_id: 26638,
  document_id: 282,
  created_at: Wed, 08 May 2019 15:05:42 CDT -05:00,
  updated_at: Wed, 08 May 2019 15:05:42 CDT -05:00>]

1 Ответ

1 голос
/ 17 марта 2020

Да, это будет:

@current_user.document_users.map(&:document_id)

, что является сокращением этого:

@current_user.document_users.map { |document_user| document_user.document_id }

Поскольку это, вероятно, класс ActiveRecord, это еще лучший способ достичь этого результат, используя pluck:

@current_user.document_users.pluck(:document_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...