2014-06-23 138 views
0

假設我有一個查詢的結果:Rails的ActiveRecord的查詢

allCourses = Course.all 

然後我也有另一套:

myCourses = current_user.courses.all 

我怎樣才能得到一組項目是在allCourses而不是在myCourses?

下面是型號:

class Student < ActiveRecord::Base 
    has_many :student_enrollments, dependent: :destroy 
    has_many :courses, through: :student_enrollments 
end 

class Course < ActiveRecord::Base 
    has_many :student_enrollments, dependent: :destroy 
    has_many :students, through: :student_enrollments 
end 

class StudentEnrollment < ActiveRecord::Base 
    belongs_to :student 
    belongs_to :course 
end 

我可以寫原始SQL腳本來實現的結果,但我更喜歡找一個Rails的方式來做到這一點。

感謝

回答

0

假設你的FK是user_id

ohterCourses = Course.where('user_id != ?', current_user.id) 
+0

或'Course.where.not(user_id,current_user.id)' – Pavan

+0

這並不那麼簡單。我有這種多對多關係的木匠模型。即使我使用該user_id刪除記錄,其他user_ids也可能具有相同的課程。 我剛剛更新了模型的問題。 – Khanetor