无法遍历对象的属性
Cannot iterate through the attributes of an object
我想访问 DocumentUser 实例变量中的 document_id
值并将其添加到数组中。但是,虽然函数 ids
已定义并且我可以使用它访问 id
值,但没有为此 class 定义函数 document_ids
。我可以继续定义它,但我的问题是 - 我是否可以不这样做就访问 document_ids
值,也许通过某种方式使用 map
函数(这让我感到困惑)?我想我可以遍历模型,因为它看起来像 returns 一个数组,但没有骰子。谢谢!
[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>]
是的,应该是这样的:
@current_user.document_users.map(&:document_id)
这是一个 shorthand 这个:
@current_user.document_users.map { |document_user| document_user.document_id }
因为它可能是 ActiveRecord
class,所以更好的方法是使用 pluck
:
@current_user.document_users.pluck(:document_id)
我想访问 DocumentUser 实例变量中的 document_id
值并将其添加到数组中。但是,虽然函数 ids
已定义并且我可以使用它访问 id
值,但没有为此 class 定义函数 document_ids
。我可以继续定义它,但我的问题是 - 我是否可以不这样做就访问 document_ids
值,也许通过某种方式使用 map
函数(这让我感到困惑)?我想我可以遍历模型,因为它看起来像 returns 一个数组,但没有骰子。谢谢!
[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>]
是的,应该是这样的:
@current_user.document_users.map(&:document_id)
这是一个 shorthand 这个:
@current_user.document_users.map { |document_user| document_user.document_id }
因为它可能是 ActiveRecord
class,所以更好的方法是使用 pluck
:
@current_user.document_users.pluck(:document_id)