Rails有点新,所以我很感谢你们提供的帮助。Rails - Active Record加入3个表格
不管怎么说,我有三个型号 - 投票,午餐,和供应商,我期待编写一个活动记录呼叫拉:在投票表
- 所有数据在午餐桌上
- 在供应者表
投票模型提供者的名称包括lunch_id午餐日期,午餐模型包括lunch_id(就叫ID)和PROVIDER_ID。提供者模型具有PROVIDER_ID(只是叫做ID)在Rails的控制台,我可以这样写:
v = Vote.joins(:lunch).select("lunches.date,votes.*").where(lunch_id: 1)
,并输出在投票模型中的所有数据,加上从午餐模型相关联的日期。我被卡住的地方是我不知道如何“嵌套”这个,然后加入到提供者模型中。
我在想这可能与“has_many_through”有关,但即使在阅读文档后,我也不确定它是如何实现的。任何想法在这里将不胜感激!
这就像一个魅力。如果你有第四个表格,那么语法会是什么呢?如果一个哈希表仍然有效,你现在有三个ID可以加入,而不仅仅是两个? 另外,在哈希中,提供者是一个符号,但什么是“午餐:”被称为?它总是让我在Rails中出现,并且来回切换冒号。 – sulleh
使用'lunch :::provider'这样的东西是'{:lunch =>:provider}'的快捷语法,它仅仅意味着':lunch'是一个值为':provider'的键,同时也是一个符号本身。如果你要加入更多的表,你可以通过提供嵌套散列来实现,例如'join(table1:{table2:{table3::table4}})'。我已经更新了包含这些技术的其他示例的rails文档链接的答案。 –
非常有帮助,谢谢! – sulleh