我有什么:
带有.where
.where(:users => {:articles => {...}, :settings => {...}, ...})
我需要什么:
其他条件,id
的{{1}}不等于:users
我尝试了什么:
@user.id
问题是什么:
语法
答案 0 :(得分:2)
您可以尝试的内容:
.where(:users => {:articles => {...}, :settings => {...}, ...}).where('users.id != ?', @user.id)
答案 1 :(得分:1)
我有一个属于Place的事实模型,这可行:
Fact.includes(:place).where("places.id != 5")
答案 2 :(得分:1)
整个语法可以做得更好
@users = User.scoped
if you_have_conditions_on_articles
@users = @users.join(:articles).where(...conditions_on_article...)
end
if you_have_conditions_on_settings
@users = @users.join(:settings).where(...conditions_on_settings...)
end
if you_need_to_exclude_user
@users = @users.where('id != ?', @user.id)
end
@users
这将创建一个正确的查询,您可以避免在不需要时添加条件。
在循环之前不会执行查询(因此,如果查询未在任何视图中使用,则根本不会执行)。