我想查询数据库并将其存储在数组中。然后我想从数组中删除一个项目并给出整个数组并将其传递给视图。
在这个模式中,每个家庭都有很多用户。
if user_logged_in
users = @current_family.users
users.each do |user|
if user.id == @current_user.id
users.delete(user)
end
end
@users = users.map {|user| [user.id, user.name]}
end
每当我从数组中删除用户时,从数组中删除的用户的family_id
字段条目将从数据库中删除(用户仍然存在)。
我如何构造它以确保没有触及数据库条目(外键等)。
谢谢
答案 0 :(得分:2)
@current_family.users
不是数组,它是ActiveRecord :: Relation delete
所以你delete
来自数据库的记录,而不是数组中的元素。
尝试缩小查询范围,例如
if user_logged_in
@users = @current_family.users.where("id != ?", @current_user.id).map {|user| [user.id, user.name]}
end