我正在尝试通过将其与另一个名为设备的模型相结合,从我的用户模型中获取电子邮件ID。两种模型之间的关联如下:
override val t: Thread = Thread({
try {
transmit()
} catch (e: Exception) {
println("Transmitter throws exception: $e")
}}, "Your name here")
}
设备有一个名为class Equipment
belongs_to :user
end
class User
has_many :equipments
end
的列
所以一开始我尝试按如下方式提取用户的电子邮件。
identifier
这工作并给了我添加该设备的用户的电子邮件。
现在我尝试通过执行以下操作来获取最后添加设备的 @email = Equipment.joins(:user).where(identifier: "LID-0000061").pluck(:email)
:
email
我得到了:
@email = Equipment.joins(:user).last.pluck(:email)
我最好的猜测是我做错了。有人可以告诉我如何采摘最后一台设备的电子邮件?
答案 0 :(得分:4)
pluck
方法适用于ActiveRecord::Relation
,而非模型本身。当您添加last
方法时,它会返回一个模型实例,因此请直接访问它的列,无需使用pluck
试试这个:
@email = Equipment.joins(:user).last.user.email
或
@email = Equipment.joins(:user).pluck(:email).last
答案 1 :(得分:0)
Pluck 适用于 ActiveRecord :: Relation 而非模型实例。您也可以使用select,而不是使用select。
If you want to use pluck, you can follow like this:
@email = Equipment.joins(:user).pluck(:email).last