2011-10-09 69 views
0

我試圖用我的模型的默認範圍重新命名它從現有數據庫加載柱:Rails3中默認的範圍問題

def self.default_scope 
     Radcheck.find(:all, 
     :select => ('attribute as newvalue') 
     ) 
end 

但是,我仍然得到一個錯誤,說明屬性被定義....

我希望我可以直接重命名列,但它已經被引用太多了。有什麼建議麼?

回答

1

是的,屬性是一個保留字。我知道這不是您想要聽到的答案,但您確實需要更改該列的名稱。

+0

嗨,我很想去,但它遠沒有整合。 –

0

由於attribute是不允許的。您可以考慮使用view以不同名稱表示列,但不影響現有參考。

0

您需要引用列,因爲它是一個SQL保留字:

def self.default_scope 
     Radcheck.find(:all, 
     :select => "#{Radcheck.connection.quote_column_name('attribute')} AS newvalue" 
     ) 
end 

你可以只使用

 :select => '`attribute` AS newvalue' 

但是這是DB的具體 - 這可能會或可能不會是一個問題爲你。