我試圖用我的模型的默認範圍重新命名它從現有數據庫加載柱:Rails3中默認的範圍問題
def self.default_scope
Radcheck.find(:all,
:select => ('attribute as newvalue')
)
end
但是,我仍然得到一個錯誤,說明屬性被定義....
我希望我可以直接重命名列,但它已經被引用太多了。有什麼建議麼?
我試圖用我的模型的默認範圍重新命名它從現有數據庫加載柱:Rails3中默認的範圍問題
def self.default_scope
Radcheck.find(:all,
:select => ('attribute as newvalue')
)
end
但是,我仍然得到一個錯誤,說明屬性被定義....
我希望我可以直接重命名列,但它已經被引用太多了。有什麼建議麼?
是的,屬性是一個保留字。我知道這不是您想要聽到的答案,但您確實需要更改該列的名稱。
由於attribute
是不允許的。您可以考慮使用view以不同名稱表示列,但不影響現有參考。
您需要引用列,因爲它是一個SQL保留字:
def self.default_scope
Radcheck.find(:all,
:select => "#{Radcheck.connection.quote_column_name('attribute')} AS newvalue"
)
end
你可以只使用
:select => '`attribute` AS newvalue'
但是這是DB的具體 - 這可能會或可能不會是一個問題爲你。
嗨,我很想去,但它遠沒有整合。 –