Ruby on rails Rails模型忽略从其他表中特别选择的其他列
这是密切相关的,但这个问题还不够深入 根据上面的问题,我从我的一个ActiveRecord模型运行了一个复杂的查询,该模型生成一种“报告”。它基本上是一个包含主要模型属性以及相关表中其他一些属性的巨大表Ruby on rails Rails模型忽略从其他表中特别选择的其他列,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,这是密切相关的,但这个问题还不够深入 根据上面的问题,我从我的一个ActiveRecord模型运行了一个复杂的查询,该模型生成一种“报告”。它基本上是一个包含主要模型属性以及相关表中其他一些属性的巨大表 查询本身可以工作。我已经验证了生成的SQL是否正确执行,当粘贴到SQL终端时,我会得到结果(以及我想要的列)。不幸的是,模型中有专有信息,我不能在这里共享,而且查询太复杂,无法混淆。但是为了了解我在做什么,这是我的ActiveRecord查询的开始:permissions=permist.se
- 查询本身可以工作。我已经验证了生成的SQL是否正确执行,当粘贴到SQL终端时,我会得到结果(以及我想要的列)。不幸的是,模型中有专有信息,我不能在这里共享,而且查询太复杂,无法混淆。但是为了了解我在做什么,这是我的ActiveRecord查询的开始:
permissions=permist.select('*').joins(“左连接交叉表('..
- 我已经将ActiveRecord查询(如上)粘贴到Rails控制台中,它不仅执行得非常完美,而且还可以查询其他属性(不与我的应用程序中的任何模型或关联关联关联),很好-正是我想要的:
>许可证。首先。申请人名称
“戈登·拉姆齐”
你所做的应该是可行的。我在我的项目中有很多查询,我从查询的记录中获得了附加属性,它在控制台中的工作方式与在Rails应用程序中的工作方式相同。尝试使用
select('permissions.*,你的_other_model_pluralized.applicator_name'))
然后是SQL的其余部分,然后查看申请人名称
属性是否保持不变。如果没有,我怀疑您的代码中还有另一个您没有注意到的问题——例如,在调用许可证之前,您可能正在重新加载许可证
。首先。申请人名称
。我已经运行了permissions.first.attributes.keys和附加属性不存在,尽管在select中被调用。我理解你的意思,但没有意义。Rails确实允许你这样做。你是否尝试过运行调试器并检查许可证。首先。SQL执行后立即执行属性?你所做的应该可以工作。我的数据库中有很多查询我从查询的记录中获取其他属性的项目,它在控制台中的工作方式与在Rails应用程序中的工作方式相同。尝试使用select('permissions.*,your_other_model_pluralized.applicator_name'))
然后是SQL的其余部分,然后查看申请人名称
属性是否保持不变。如果没有,我怀疑您的代码中还有另一个您没有注意到的问题——例如,在调用许可证之前,您可能正在重新加载许可证
。首先。申请人名称
。我已经运行了permissions.first.attributes.keys和其他属性不存在,尽管在select中被调用。我理解您的意思,但没有意义。Rails允许您这样做。您是否尝试过运行调试器并检查许可证。首先,在SQL执行后立即执行属性?