2016-06-13 46 views
0

定义many_to_manyone_through_one关联时,续集提供graph_join_table_conditions选项,该关联允许您在加载关联时在连接表上设置额外条件。`join_table_conditions`为Sequel`one_through_one`关联?

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

我错过了什么吗?我知道我可以添加:

conditions: { join_table__some_col: 'something' } 

的关联设置,但似乎脆弱的做多加入或预先加载的时候,等....

回答

1

传递一个块的关联方法可能是最好的方法来实现:

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

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

+0

好的,谢谢你的答案(并感谢伟大的图书馆)! –