2013-03-05 61 views
0

我使用xml/mapping庫,這裏是我如何生成XML:用大寫字母生成XML根?

xml = user.save_to_xml 
str = String.new 
xml.write(str,2) 

結果是我想要的東西有點不同。它會產生一個小寫字母的XML標籤:

<user PK=... 
... 
</user> 

但我需要的標籤,開始用大寫字母:

<User PK=... 
... 
</User> 

如何強制生成帶有大寫字母?

回答

1

您可以覆蓋默認root_element_name像這樣:

User.root_element_name "User" 

如果你想修改默認的所有類,你需要重寫它被定義爲default_root_element_name方法:

# The default root element name for this class. Equals the class 
# name, with all parent module names stripped, and with capital 
# letters converted to lowercase and preceded by a dash; 
# e.g. "Foo::Bar::MySampleClass" becomes "my-sample-class". 
def default_root_element_name 
    self.name.split('::')[-1].gsub(/^(.)/){$1.downcase}.gsub(/(.)([A-Z])/){$1+"-"+$2.downcase} 
end