Rails 1.2新特性体验(String和Array)

阅读更多
1 获取指定位置的字符
ruby 代码
 
  1. >> "Finally, something useful!".at(6)  
  2. => "y"   

fromto (String)
ruby 代码
 
  1. >> "Chris the Person".from(6)  
  2. => "the Person"   
  3. >> "Chris the Person".to(4)  
  4. => "Chris"   

firstlast (String)

   
   
   
   
ruby 代码
  1. >> "Christmas Time".first  
  2. => "C"   
  3. >> "Christmas Time".first(5)  
  4. => "Chris"   
  5. >> "Christmas Time".last  
  6. => "e"   
  7. >> "Christmas Time".last(4)  
  8. => "Time"  
first带参数与to功能相似。last带参数与from功能相似

4
each_char 把字符串转换成字符数组进行处理
ruby 代码
  1. >> "Snow".each_char { |i| print i.upcase }  
  2. SNOW  
  3. >>"Snow".upcase  
  4. SNOW  

5
starts_with?ends_with?去检测一个
regular expression
ruby 代码
  1. >> "Peanut Butter".starts_with? 'Peanut'  
  2. => true  
  3. >> "Peanut Butter".ends_with? 'Nutter'  
  4. => false  

6 to_timeto_date
ruby 代码
  1. >> "1985-03-13".to_time  
  2. => Wed Mar 13 00:00:00 UTC 1985  
  3. >> "1985-03-13".to_date  
  4. => #  

7 转换的方法:

pluralize, singularize, camelize, titleize, underscore, dasherize, demodulize, tableize, classify, humanize, foreign_key, and constantize

 

8 to_sentence把数组转换成一个字符串,用逗号分隔,并且在最后一个元素前加上'and'。可以带两个参数,:connector:skip_last_comma.第一个参数最后一个元素前要加上的字符串,默认是‘and’。后一个表示是否在最后两个元素之间加上逗号分隔符。false:加上。true:不加上,默认是false


 

ruby 代码
 
  1. >> %w[Chris Mark Steven].to_sentence  
  2. => "Chris, Mark, and Steven"   
  3.   
  4. >> %w[Soap Mocha Chocolate].to_sentence(:connector => '&')  
  5. => "Soap, Mocha, & Chocolate"   
  6. >> %w[Ratatat Interpol Beirut].to_sentence(:skip_last_comma => true)  
  7. => "Ratatat, Interpol and Beirut"
10 rails重载了to_s方法。加入了一个参数:db,只能工作在 ActiveRecord objects。输出所有model对象的id值。

 

ruby 代码
 
  1. >> array_of_posts = Post.find(:all:limit => 3)  
  2. => [#  
  3. >> array_of_posts.to_s(:db)  
  4. => "1,2,3"   
  5. >> [].to_s  
  6. => ""   
  7. >> [].to_s(:db)  
  8. => "null"   

 

11  to_xml,包含几个参数。

Pass in :skip_instruct to omit the line. You can also provide an :indent option (default: 2), a :builder option (you probably want to stick with the default of Builder::XmlMarkup), a :root option (defaults to the lowercase plural name of the class, posts in this case), and a children option (singular lowercase class—post for me).


      
      
      
      
ruby 代码
  1. >> puts array_of_posts.to_xml  
  2. => "?>  
  3.   
  4.     
  5.     ... tons of xml ...  
  6.     
  7.     

12
in_groups_of (只能在ActiveRecord objects中使用。)
ruby 代码
  1. >> %w[1 2 3 4 5 6 7].in_groups_of(3) { |g| p g }  
  2. ["1""2""3"]  
  3. ["4""5""6"]  
  4. ["7"nilnil]  
  5.   
  6. >> %w[1 2 3].in_groups_of(2, ' ') { |g| p g }  
  7. ["1""2"]  
  8. ["3"" "]  
  9.   
  10. >> %w[1 2 3].in_groups_of(2, false) { |g| p g }  
  11. ["1""2"]  
  12. ["3"]  
  13.   
  14. >> %w[1 2 3 4 5 6 7].in_groups_of(3)  
  15. => [["1""2""3"], ["4""5""6"], ["7"nilnil]]  

13
split
ruby 代码
 
  1. >> %w[Tom Jerry and Mickey and Pluto].split('and')  
  2. => [["Tom""Jerry"], ["Mickey"], ["Pluto"]]    
  3. >> %w[Chris Mark Adam Tommy Martin Oliver].split { |name| name.first == 'M' }  
  4. => [["Chris"], ["Adam""Tommy"], ["Oliver"]] 

ruby 代码
 
  1. >> "reindeer".pluralize  
  2. => "reindeers"   
  3. >> "elves".singularize  
  4. => "elf"   
  5. >> "christmas_carol".camelize  
  6. => "ChristmasCarol"   
  7. >> "christmas_carol".camelize(:lower)  
  8. => "christmasCarol"   
  9. >> "holiday_cheer".titleize  
  10. => "Holiday Cheer"   
  11. >> "AdventCalendar-2006".underscore  
  12. => "advent_calendar_2006"   
  13. >> "santa_Claus".dasherize  
  14. => "santa-Claus"   
  15. >> "Holiday::December::Christmas".demodulize  
  16. => "Christmas"   
  17. >> "SnowStorm".tableize  
  18. => "snow_storms"   
  19. >> "snow_storms".classify  
  20. => "SnowStorm"   
  21. >> "present_id".humanize  
  22. => "Present"   
  23. >> "Present".foreign_key  
  24. => "present_id"   
  25. >> "Cheer".constantize  
  26. NameError: uninitialized constant Cheer  
  27. >> "Christmas".constantize  
  28. => Christmas  
上面是字符串部分,下面是数组部分:

你可能感兴趣的:(Rails,Ruby,ActiveRecord,SOAP,XML)