我有这段代码:
schools_users = SchoolsUsers.where(user_id: @user.id)
schools_users.each do |school_user|
delete = true
params[:school_id].each do |id|
if school_user.school_id == id
delete = false
end
end
if delete
school_user.destroy
end
end
我有一个我直接查询的连接表。我想删除一行,具体取决于它们是否在params[:school_id]
中。现在当我试图销毁那个特定的行时,我得到了这个错误。
Mysql2 ::错误:未知栏' schools_users。'在' where子句': DELETE FROM
schools_users
WHEREschools_users
。``= NULL
我现在很困惑。我认为模型对象是表中的一行。但似乎即使那些id是可访问的,它也不是真正映射到实际数据库中的一行。所以我的问题是如何在rails 4中正确地做到这一点?一旦查询集合似乎非常浪费,然后必须再次调用find(id)
以专门获取该行。