Arel 3.0.2は、結合タイプを指定する2つのクラス、つまりArel::Nodes::InnerJoin
とArel::Nodes::OuterJoin
を提供し、デフォルトでInnerJoin
を使用します。Arelに参加するにはどうすればいいですか?
左結合を作成するにはどうすれば2つのテーブルを結合できますか?
Arel 3.0.2は、結合タイプを指定する2つのクラス、つまりArel::Nodes::InnerJoin
とArel::Nodes::OuterJoin
を提供し、デフォルトでInnerJoin
を使用します。Arelに参加するにはどうすればいいですか?
左結合を作成するにはどうすれば2つのテーブルを結合できますか?
使用
foo.join(bar, Arel::Nodes::OuterJoin) # outer
LEFT JOINは= LEFT OUTER JOINをするので。外はオプションです。 を参照してください。here
ここには、見たいと思う人のためのレールモデルの完全な例があります。以下のための通過:
はを把握するために私に時間のカップルを取ったので、私は世界で
を共有するこれを使用すると、1つのモデルがRssFeed
と呼ばれ、他はhas_manyのためのモデルに参加しているRssFeedUser
呼ば前提と思いましたUser
RssFeed.find_by_sql(RssFeed.arel_table.join(RssFeedUser.arel_table,Arel::Nodes::OuterJoin).on(RssFeed.arel_table[:id].eq(RssFeedUser.arel_table[:rss_feed_id])).where(RssFeedUser.arel_table[:user_id].eq(nil)).project('rss_feeds.*'))
というモデルおそらくこれは助けることができる:http://ruby.ryanbigg.com/post/1468788928/left-outer-join-with-arelを –