嘿,我希望你能幫助我,怎麼說「不」在活動記錄查詢
@courses = Course.where(:ID = current_user.courses)
我想獲得當前用戶未註冊的課程
@courses = Course.where(:id => current_user.courses)爲我提供了用戶註冊的課程。但我想要相反
關聯就好了。我可以使用current_user.courses或current_user.assignments。
嘿,我希望你能幫助我,怎麼說「不」在活動記錄查詢
@courses = Course.where(:ID = current_user.courses)
我想獲得當前用戶未註冊的課程
@courses = Course.where(:id => current_user.courses)爲我提供了用戶註冊的課程。但我想要相反
關聯就好了。我可以使用current_user.courses或current_user.assignments。
你可能需要的東西是這樣的:
@courses = Course.where("id NOT IN (?)", current_user.courses)
你不能用純粹的數組或哈希狀況的原因是因爲你否定(「NOT IN」)查詢。據我所知,這不能使用基於字符串的語法來完成。如果你只是想找到匹配(「IN」)的項目,你可以使用散列形式:
@courses = Course.where(:id => current_user.courses)
這是否定(「NOT IN」),這使得它棘手的部分。
如果你想避免使用原始字符串,你可以使用ARel
@courses = Course.where(Course.arel_table[:id].not_in(current_users.courses))
不幸的是,ARel
未記錄非常好。我使用this作爲參考。
謝謝你mirthlab。它的工作正常!什麼是「ID不在(?)」?我還可以在其他查詢中使用它嗎? – daniel 2011-01-06 02:08:46
我添加了一些信息和鏈接到文檔。希望有所幫助。 「不在」僅僅意味着「找到不在這個ID列表中的東西」,這基本上就是其他所有東西。鏈接導軌指南中有許多巧妙的技巧。看看:) – markquezada 2011-01-06 02:14:03
哦,我現在有一個新的問題。我有5門課程。我沒有從所有的人那裏註冊來測試它。現在,因爲我使用「@courses = Course.where(」id NOT IN(?)「,current_user.courses)」它沒有在我的索引中顯示任何課程^^ – daniel 2011-01-06 02:16:00