我需要消除这个过程中的一个步骤。
我首先使用“where”来查找具有匹配 id 的配置文件
@facebook_profile = FacebookProfile.where(:facebook_id => session[:facebook_profile_id])
这会产生一个看起来像这样的对象(注意周围的方括号)
[#<FacebookProfile id: 94, etc.]
如果我做:
$ @facebook_profile.id
结果是
#<NoMethodError: undefined method `id' for #<ActiveRecord::Relation:0x007f919cb0b3c0>>
然后我使用 pluck 来生成一个不同的对象,但这需要我使用之前的关系 @facebook_profile。
@new_facebook_profile = FacebookProfile.find_by_my_column(@facebook_profile.pluck(:my_column))
这会产生一个没有方括号的关系:
#<FacebookProfile id: 94, etc.>
在这个对象上,我可以调用:
@new_facebook_profile.id
并得到我的正确结果
我怎样才能做到@facebook_profile.id 并获得正确的结果而不是错误?我怀疑这与延迟加载有关,但我不能确定。我知道这与关系周围的括号有关。我想摆脱“采摘”步骤。