Tôi có 2 mô hình (Tập luyện, Thiết bị) trong một đã và thuộc về nhiều mối quan hệ. Nếu tôi sử dụng Workout.find(:all, :joins => :equipment, :conditions => "equipment.id = 5")
nó hoạt động, nhưng nếu tôi sử dụng Workout.find(:all, :joins => :equipment, :conditions => "equipment.id = null")
, nó sẽ không trả về các bản ghi mà không có liên kết. Bất kỳ ý tưởng?Đường ray: HABTM - tìm tất cả các bản ghi không có liên kết
6
A
Trả lời
9
Đặt tính năng này thành một xoáy;
Workout.joins("left join equipments e on workouts.id = e.workouts_id").where("e.id is null")
+0
đường ray 3 arel: 'Workout .joins (: thiết bị, Arel :: Nodes :: OuterJoin) .where (Equipment.arel_table [: id] .eq (nil)) ' – equivalent8
Đường nối là kết nối bên trong. Kiểm tra câu trả lời của Jamsi để tham gia bên ngoài bên trái sẽ cung cấp cho bạn các "bài tập không liên kết". – Salil
có thể trùng lặp của [Rails habtm và tìm bản ghi không có liên kết] (http://stackoverflow.com/questions/7032194/rails-habtm-and-finding-record-with-no-association) –