我認爲這非常簡單,而且我錯過了一些明顯的東西。我正在連接到具有列dblOrderQty
的舊數據庫。我正在驗證它:ActiveRecord驗證:顯示列名以外的內容
validates_numericality_of :dblOrderQty, :greater_than => 0
這當然,提出「Dblorderqty必須大於0」。我寧願說「數量必須大於0」,但我找不到修改郵件中列名的方法。
我認爲這非常簡單,而且我錯過了一些明顯的東西。我正在連接到具有列dblOrderQty
的舊數據庫。我正在驗證它:ActiveRecord驗證:顯示列名以外的內容
validates_numericality_of :dblOrderQty, :greater_than => 0
這當然,提出「Dblorderqty必須大於0」。我寧願說「數量必須大於0」,但我找不到修改郵件中列名的方法。
不知道這是最好的方式,但它的工作原理:)
class ModelName < ActiveRecord::Base
HUMANIZED_ATTRIBUTES = {
:dblOrderQty => "Order Quantity"
}
validates_numericality_of :dblOrderQty, :greater_than => 0
def self.human_attribute_name(attr)
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end
end
我沒有測試過這一點,但你可能會覆蓋默認的屬性訪問器模型中的這樣
def quantity
read_attribute(:dblOrderQty)
end
然後參考被覆蓋的屬性。一如既往,請參閱docs
我使用Bob Silva的error_messages_for插件。 http://agilewebdevelopment.com/plugins/enhanced_activerecord_errors
它包括傳遞哈希以更改錯誤消息中某些或全部模型屬性的名稱的功能。這是在視圖(或助手)中完成的。覆蓋屬性名稱對於本地化應用程序也很重要。
我覺得這是清潔劑使用本地化(拉里ķ暗示)通過添加以下到配置/區域設置/ en.yml:
en:
activerecord:
attributes:
model_name:
dblOrderQty: "Quantity"
我不知道,如果駝峯會混淆它與否。