ruby-on-rails - 如何编写从返回 ActiveRecord 关系的连接表(使用自定义类关联)返回列的查询
问题描述
class Event < ApplicationRecord
belongs_to :event_type, :class_name => 'Keyword', :foreign_key => :event_type_id, optional: false
belongs_to :promotion_type, :class_name => 'Keyword', :foreign_key => :promotion_type_id, optional: false
end
class Keyword < ApplicationRecord
has_many :events
end
我正在尝试编写一个从连接表返回列的查询,但是如果我使用它似乎只能创建一个工作查询Pluck
- 我不希望使用它,因为它可以确保查询返回一个数组。我需要查询来返回 ActiveRecord 关系。
这是使用 Pluck 工作的查询。(返回数组)
Event.joins(:event_type).pluck('event.id, event.name, keywords.name')
当我尝试使用 Select 连接表列时,结果中没有出现。(返回我需要的 ActiveRecord 关系)
Event.joins(:event_type).select('event.id, event.name, keywords.name')
我显然错过了一些简单但卡住的东西。任何人都可以帮忙吗?
解决方案
我最终调整了我的模型以删除自定义类。一旦我这样做了,查询就会像我一直期望的那样工作。
Event.joins(:event_type).select('event.id, event.name, keywords.name')
结案。
推荐阅读
- reactjs - Is it posible to sync latest state in function
- javascript - How to add days in the current date? using script and django
- mysql - python3 virtualenv(Mac OS)中的mysqlclient安装失败
- node.js - How can I use two "show" methods in the controller?
- c# - No node_modules folder after npm install inside Docker
- javascript - 错误:未找到与请求 URI 匹配的 HTTP 资源 - 使用对象类型传递值
- reactjs - 从非组件访问 next-redux-wrapper 的存储
- php - PHP中的TCP套接字
- javascript - 如何连接通过 Node.js 中的 Mongoose 通过两个回调调用创建的字符串?
- string - 使用替换列表及其位置替换文件中的字符串