我正在尝试从我的 中获取电子邮件 ID用户 将其与另一个名为 的模型连接起来。设备 .两个模型之间的关联如下:
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)
我有:
NoMethodError: undefined method `pluck' for #<Equipment>
我最好的猜测是我做错了。有人可以告诉我如何提取最后一个设备的电子邮件吗?
最佳答案
pluck
方法适用于 ActiveRecord::Relation
,而不是模型本身。当您添加 last
时方法,它返回一个模型实例,所以直接访问它的列,不需要使用pluck
尝试这个:
@email = Equipment.joins(:user).last.user.email
或者
@email = Equipment.joins(:user).pluck(:email).last
关于ruby-on-rails - 无方法错误 : undefined method `pluck' for #<Model>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43153885/