在Rails应用程序中,我正在设置嵌套路由
resource Country do
resource State
resource City
resource User
resource Post
end
我现在想要显示在../country/1/users
在用户控制器中,我有:
def index
@user = User.includes(:posts, :city, :state, :country)
@user = @users.where("states.country_id = ?", params[:country_id]) if params[:country_id]
@active_users = @users.where('posts_count > ?', 0).ranked_scope
end
我,得到:
PG::Error: ERROR: column reference "posts_count" is ambiguous
LINE 1: ...untry_id" WHERE (states.country_id = '1') AND (posts_co...
我不确定这是因为:
posts_count
列,查询不知道要使用哪一个。如果是这样,指定表的正确语法是什么?我很感激任何建议或想法。
答案 0 :(得分:2)
尝试:
@active_users = @users.where('users.posts_count > ?', 0).ranked_scope
答案 1 :(得分:0)
@users = @users.where("states.country_id = ?", params[:country_id]) if params[:country_id]
帖子属于用户,帖子有一个国家/地区。在USer和Country之间没有直接关系的情况下,我将查询修改为
@users = @users.where(id: Country.find(params[:country_id]).users.uniq if params[:country_id]
(并仔细检查了我所有的模型关系都已正确配置)。
作品!
错误消息对于跟踪此消息并不是很有帮助!