ruby-on-rails - 无方法错误 : undefined method `pluck' for #<Model>

标签 ruby-on-rails activerecord

我正在尝试从我的 中获取电子邮件 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/

相关文章:

activerecord - yii2 行为 ActiveRecord::EVENT_BEFORE_INSERT 不起作用

ruby-on-rails - 注销前更新 current_user 时收到 "Attempted to update a stale object: User"异常

javascript - 为 Rails 设置 JavaScript 格式

ruby-on-rails - 跳过相关对象的验证 - rails activerecord

ruby-on-rails - PG错误不知道如何调试

ruby-on-rails - 如何在 rails 5 api 中获取请求 header cookie

sql - 如何在 Postgres 的 Rails 中按天分组和计数?

mysql - MySQL 复合索引中键的高性能排序(WRT Rails 多态关联和 STI)

ruby-on-rails - Rails 3 事件管理员。根据 CanCan 权限隐藏按钮

ruby-on-rails - update_all之后的Rails Elastic Search重新索引数据