我的控制器中有以下内容列出了用户。
@users = User.paginate(:page => params[:page])
我尝试使用以下
更改订单@users = User.paginate(:page => params[:page]).order('created_at DESC')
我收到以下错误
ActiveRecord::StatementInvalid in UsersController#index
SQLite3::SQLException: ambiguous column name: created_at: SELECT DISTINCT "users"."id" FROM "users" LEFT OUTER JOIN "user_languages" ON "user_languages"."user_id" = "users"."id" WHERE (user_languages.level_id = 1) ORDER BY created_at DESC LIMIT 30 OFFSET 0
然后我改变了如下行
@users = User.paginate(:page => params[:page]).order('user.created_at DESC')
我收到以下错误。
ActiveRecord::StatementInvalid in UsersController#index
SQLite3::SQLException: no such column: user.created_at: SELECT DISTINCT "users"."id" FROM "users" LEFT OUTER JOIN "user_languages" ON "user_languages"."user_id" = "users"."id" WHERE (user_languages.level_id = 1) ORDER BY user.created_at DESC LIMIT 30 OFFSET 0
请帮助解决此错误。
答案 0 :(得分:4)
您可能在User
上有一些加入user_languages
的默认作用域,并且这两个表中都有created_at
列。因此,您应该指出要订购哪个表created_at
:
@user = User.paginate(page: params[:page]).order('users.created_at DESC')