关于belongs_to的through
By admin
has_one和has_many都有through 的参数。
本来belongs_to也应该有。
比如
order belongs_to client
client belongs_to company
so
order belongs_to company
逻辑上比较容易这么想。
但是belongs_to 没有越级的这种优惠。
根据stackoverflow上有人说,belongs_to 认为当前模型一定会有一个外键与所属的表相关连。所有没有越级through参数。
如果想简单的实现
在order里定义
或者
delegate :company, to: :client
都行
但是这样的话在联合搜索的时候,不能通过模型关联自动生成联合查询的sql
例如
后来我采用的方式是在orders上增加company_id字段,在client的更新的hook上加上更新所有orders的company_id,为了搜索的方便,增加了更新的麻烦。