1
我有一個很多協會交易模式。其中一個協會是貨幣。交易表和貨幣表都有一個名稱列。現在,我有以下的ActiveRecord查詢:「select column as」如何工作?
Deal.
joins(:currency).
where("privacy = ? or user_id = ?", false, doorkeeper_token.resource_owner_id).
select("deals.name as deal_name, deals.date as deal_creation_date, deals.amount as deal_amount, currencies.name as currency_name, currencies.symbol as currency_symbol")
此查詢不工作,其結果是沒有屬性的交易對象的數組。根據IRC上的某個人,「as」部分是不正確的,因爲ORM不知道如何將列分配給屬性(或類似的東西),這足夠公平。我嘗試添加attr_accessor和attr_accessible子句,但它不起作用。
請問我該如何進行上述查詢工作?我期望的結果是一個交易對象數組,deal_name
,deal_creation_date
等虛擬屬性。
好的,適合我。除了關聯/連接。例如,使用以下查詢:'Deal.joins(:currency).where(「deals.privacy =?or deals.user_id =?」,false,4).select(「deals.name as deal_name,deals.date as deal_date,deal.amount as deal_amount,currency.symbol as currency「)。as_json'。在這個例子中'currency'是'nil',即使它不應該(因爲它在DB中有一個值)。但是,它的價值是一個特殊的特徵。這是問題嗎? – 2013-05-10 17:03:37
這可能是特殊字符導致貨幣問題。您可以嘗試在文件頂部放置'#encoding:UTF-8'。 [這是一個例子](http://stackoverflow.com/a/6916663/1450420)解決什麼可能是類似的問題 – 2013-05-10 18:02:53
我不明白的是,一切工作正常,如果我不使用「作爲「在select語句中(包括json中的特殊字符)。所以我懷疑問題的根源是特殊字符... – 2013-05-10 18:14:25