外部加入Rails 3方式

Spy*_*ros 4 ruby-on-rails ruby-on-rails-3

我有3个型号,如:

location, user, discovered_location(location_id,user_id)
Run Code Online (Sandbox Code Playgroud)

我想我需要一个外部联接来获取所有位置,并且如果用户已发现该位置,则包括discovered_location模型.

我需要类似的东西 {location1, location2, location3:includes discovered_location, location4 ..}

是否有Rails 3方法可以做到这一点?如果没有,最好的方法是什么?

编辑

我想为某个用户获取上面指定的位置.为了更好地说明,它应该是:

用户 {location1, location2, location3:includes discovered_location, location4 ..}

(用户有很多发现的位置)

Rya*_*igg 8

您只能通过在joins方法中使用SQL文字来在Rails中执行外部联接:

joins("OUTER JOIN table2 on table2.column = table1.column")
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用`includes`方法并且还在包含的表上使用条件,AR将执行OUTER JOIN. (4认同)