use*_*036 4 activerecord ruby-on-rails
我试图通过将它与另一个名为Equipment 的模型连接来从我的User模型中获取电子邮件 ID 。两个模型之间的关联如下:
class Equipment
belongs_to :user
end
class User
has_many :equipments
end
Run Code Online (Sandbox Code Playgroud)
该设备有一个名为列identifier
在第一次我试图这样一个获取用户的电子邮件如下。
@email = Equipment.joins(:user).where(identifier: "LID-0000061").pluck(:email)
Run Code Online (Sandbox Code Playgroud)
这有效并给了我添加该设备的用户的电子邮件。
现在,我想取email的最后通过做以下补充设备:
@email = Equipment.joins(:user).last.pluck(:email)
Run Code Online (Sandbox Code Playgroud)
我有:
NoMethodError: undefined method `pluck' for #<Equipment>
Run Code Online (Sandbox Code Playgroud)
我最好的猜测是我做错了。有人可以告诉我如何提取最后一个设备的电子邮件吗?
该pluck方法适用于ActiveRecord::Relation,而不适用于模型本身。添加last方法时,会返回一个模型实例,所以直接访问它的列,不需要使用pluck
尝试这个:
@email = Equipment.joins(:user).last.user.email
Run Code Online (Sandbox Code Playgroud)
或者
@email = Equipment.joins(:user).pluck(:email).last
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4368 次 |
| 最近记录: |