嘿,我希望你能帮助我,
@courses = Course.where(:id!= current_user.courses)
我想获得当前用户未注册的课程
@courses = Course.where(:id => current_user.courses)为我提供了用户注册的课程。但我想要相反的
协会很好。我可以使用current_user.courses或current_user.assignments。
答案 0 :(得分:6)
你可能需要这样的东西:
@courses = Course.where("id NOT IN (?)", current_user.courses)
您不能使用纯数组或散列条件的原因是因为您否定(“NOT IN”)查询。据我所知,如果不使用基于字符串的语法,就无法做到这一点。如果您只想查找匹配(“IN”)项,则可以使用哈希表单:
@courses = Course.where(:id => current_user.courses)
否定(“NOT IN”)部分使其变得棘手。
中找到答案 1 :(得分:1)
如果您希望避免使用原始字符串,可以使用ARel
@courses = Course.where(Course.arel_table[:id].not_in(current_users.courses))
不幸的是,ARel
没有很好地记录。我使用this作为参考。