2012-06-04 55 views
0

我有這些在我的控制器:Meta_search誤差模型關聯

class AccountsController < ApplicationController 
def index 
    @search = Account.search(params[:search]) 
    @accounts = @search.order("id desc").includes(:chef).page(params[:pagina]).per(10) 
end 
end 

我的觀點:

<%= f.text_field :username_or_email_or_chef_name_contains %> 

工作正常!如果我脫下.includes

ActiveRecord::StatementInvalid in Accounts#index 
Mysql2::Error: Column 'id' in order clause is ambiguous: SELECT `accounts`.`id` AS t0_r0, `accounts`.`chef_id` AS t0_r1,... 

(:廚師)賬戶控制器,工作正常但是,當我基於電子郵件搜索,我得到這個錯誤。

問題

爲什麼這個錯誤?出於性能原因,我不想從帳戶控制器中刪除include

回答

1

賬戶表和廚師表每個都有一個id列,所以MySQL不知道應該按照哪些列排序。嘗試在order by子句中指定表名:

@accounts = @search.order("accounts.id desc").includes(:chef).page(params[:pagina]).per(10) 
+0

Thanks!我知道了。 – maiconsanson