所以我有一个ActiveRecord Schedule,它有一个父Facility,如下所示:
class Schedule < ActiveRecord::Base
belongs_to :facility, class_name: 'Facility'
...
end
在我的应用程序中,我需要从用户输入动态生成查询-它们可能会变得相当复杂。然而,我遇到的麻烦应该是来自更熟悉rails内部的人。
我正在运行一个查询,我离开了加入设施,像这样:
scope = scope.joins("LEFT JOIN facilities AS facility ON facility.id=schedules.facility_id")
scope = scope.select('TO_JSON(facility.*) facility')
这使得前端代码更容易。有很多现有的架构,我不会进入这篇文章的目的-但我们使用第三方库,生成我们想要在后端处理的查询,它不知道如何复数化数据库名称。我们可以(并且确实)转换请求来解释这一点-但是我试图通过尽可能使后端更智能来改进事情(我们将看到当所有的都说了和做了之后,它是否真的更容易)。
查询按预期执行,结果记录的属性为facility
(model.has_attribute?("facility")
= true
)。
然而,不起作用的是,如果我调用model.facility
-而不是返回刚刚获取的设施,它想出去运行一个单独的查询来获取父设施示例。
我想知道的是假设我在动态查询中使用了facility
这样的别名来代替facilities
,那么我如何才能让我的ActiveRecord模型示例将该数据用于其父(或其他)关联?我想把它集成起来,这样就可以在后台自动地、神奇地作为查询的一部分。谢谢你,谢谢
1条答案
按热度按时间wbgh16ku1#
fixed it out:)