连接没有在模型中定义关联的表

时间:2014-03-20 20:20:39

标签: ruby-on-rails activerecord

我的DB,Car,accident和ValueAnalysis中有3个表。第一个存储有关汽车本身的信息,第二个存储有关事故的信息,最后一个关于它检查其价值(价格)的分析。

事故对汽车有一个FK,就像ValueAnalysis一样。

Car <-- Accidents
 ^
 |
ValueAnalysis

但VA并未提及事故,事故并未提及VA。

在这个特定页面中,我想进行查询并获取有关汽车,事故和分析的信息。

我试过了:

@Analysis = Analysis.joins(:car, "INNER JOIN accidents a ON (a.month = value_analysis.month)").where("car.plate = '#{params[:plate]}' ")

所以我会收到一个盘子作为参数,我想获得有关汽车,事故和价值分析的信息。

此代码目前有效,唯一缺少的是我不知道如何访问有关事故的信息: @Analysis [0] .car检索汽车信息,但@Analysis [0] .accidents不存在。

有没有办法在不添加模型中的关联的情况下执行此连接查询?

编辑:有一些建议我应该使用分析[0] .car.accidents或类似的。访问这种方式是一种非常好的方法,但在这种情况下,我想在图表中关联事故和分析。因此,如果我可以连续进行汽车,分析和与该分析相关的事故(我知道相关性,因为日期将是相同的),这将是很好的。 如果我可以使用这个查询,我的应用程序中不需要任何额外的逻辑来查找每个分析的相关事故。

PS:为什么事故和分析没有FK?因为分析每天都会发生,无论是否发生意外。如果发生事故,我想知道有关当天分析的信息。

1 个答案:

答案 0 :(得分:0)

根据您的关联图表,caraccidents的关系为1-M。

您可以使用accidents

访问特定car的{​​{1}}