我想完成这样的连接:
MyModel.joins(:other_model).
where(column: 123, other_model { other_column: column_in_my_model })
在实践中,这就像
SELECT * FROM my_model m
INNER JOIN other_model o on m.column = o.foreign_key
WHERE m.column = 123 AND o.other_column = m.column_in_my_model
在activerecord版本中,没有传递SQL字符串就无法引用我所知道的column_in_my_model
。是否可以使用activerecord语法执行此操作而不传递原始SQL字符串? Arel也行。
答案 0 :(得分:0)
你可以做这样的事情
MyModel.joins(:other_model)
.where(my_model_column: 123)
.where('column_in_my_model = other_model_column')
答案 1 :(得分:0)
MyModel.find(:all,
:joins=>" JOIN other_model_table_name ON other_model_table_name.column = my_models.column",
:conditions=>"my_models.column = '123' AND other_model_table_name.column = my_models.column"
)