2011-11-17 74 views
0

我想改變一個列名作爲一種方式來排序我們有一個遺留數據庫。我已經找到一個修復程序here但我嘗試了一種不同的方法。選擇列名稱爲不工作Rails3

我似乎無法使用AS語句。我已經嘗試了所有這些:

@radcheck = Radcheck.find(:all, :select => 'attribute AS attr') 

和:

@radcheck = Radcheck.find_by_sql("select attribute AS attr from radcheck") 

當我運行在控制檯後者,似乎工作確定,但輸出是不正確的:

irb(main):076:0* @radcheck = Radcheck.find_by_sql("select 'username, attribute AS attr' from radcheck") 
    Radcheck Load (22.4ms) select 'username, attribute AS attr' from radcheck 
=> [#<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >, #<Radcheck >] 

我在這裏有什麼愚蠢的東西嗎?

+0

不,看起來是正確的。你在用什麼數據庫服務器?日誌中顯示的生成的SQL是什麼? –

+0

我在mysql上。已嘗試沒有引號以及。我的輸出不顯示任何東西 - 我得到的只是屬性?由ar定義。錯誤。 –

回答

1

您是否嘗試過訪問@radcheck元素的屬性?這些屬性不是由inspect方法打印的(當它試圖顯示它時,在對象上被irb調用),但這並不意味着它們不在那裏。例如,嘗試直接打印@radcheck.first.attr

+0

這也行不通:( –

+0

)如何將'Radcheck.all(:select =>'屬性作爲attr')'或'Radcheck.select('attriute as attr')。all'?Btw,打印結果自定義選擇使用'@ radcheck.to_yaml'或'y @ radcheck'快捷方式好多了 –

+0

這兩個都能工作,但是隻有當我使用safe_attributes gem時,它似乎是列名屬性的問題 - 你只是似乎無法改變它。 –