续集`one_through_one`关联的`join_table_conditions`?

时间:2016-06-13 21:29:49

标签: ruby sequel

Sequel在定义graph_join_table_conditionsmany_to_many关联时提供了one_through_one选项,可让您在急切加载关联时在联接表上设置额外条件。

但是,当急切加载关联(例如join_table_conditions)时,似乎没有相应的方法可供使用。有一个join_table_block选项,但似乎并不适用于查询。

我错过了什么吗?我知道我可以补充一下:

conditions: { join_table__some_col: 'something' }

到关联设置,但在进行多个连接或急切加载等时看起来很脆弱......

1 个答案:

答案 0 :(得分:1)

将块传递给association方法可能是实现这一目标的最佳方法:

many_through_many :foos do |ds|
  ds.where(join_table__some_col: 'something')
end

使用每个关联的查询进行常规加载和预先加载时使用该块。您仍然需要使用:graph_join_table_conditions通过eager_graph处理预先加载。