Ruby 如何在Sequel关联中动态选择表?

Ruby 如何在Sequel关联中动态选择表?,ruby,sequel,Ruby,Sequel,我正在尝试在两个模型之间创建一对一的关联,称为a和B。模型B可以存在于表Foo中,如果Foo存在,或者表Bar,所有其他情况 我尝试使用one-to-one关联方法的:dataset标志来让它工作,但似乎不知道如何在不引入循环依赖的情况下使它工作 有没有办法通过续集关联来实现这一点?还是手工编写SQL的最佳做法?我不确定自己是否完全理解您试图做的事情,但根据您的描述,您应该只需要使B的表依赖于表Foo是否存在: class B < Sequel::Model(DB.table_exists

我正在尝试在两个模型之间创建一对一的关联,称为
a
B
。模型
B
可以存在于表
Foo
中,如果
Foo
存在,或者表
Bar
,所有其他情况

我尝试使用one-to-one关联方法的
:dataset
标志来让它工作,但似乎不知道如何在不引入循环依赖的情况下使它工作


有没有办法通过续集关联来实现这一点?还是手工编写SQL的最佳做法?

我不确定自己是否完全理解您试图做的事情,但根据您的描述,您应该只需要使B的表依赖于表Foo是否存在:

class B < Sequel::Model(DB.table_exists?(:Foo) ? :Foo : :Bar); end
这两个我都没有测试过,但它们应该可以工作。如果这不是您想要的,您可能希望在描述中添加更多细节

A.many_to_one(:b){|ds| ds.from(ds.db.table_exists?(:Foo) ? :Foo : :Bar)}