2017年7月24日 星期一

rails select data format

irb(main):015:0> puts User.last.attributes.to_yaml

id: 38
employee_number: '9900714'
name: 秦延凯
mobile: ''
password_digest: "$2a$10$H/Zb3HV3t6vubvVq1EPXEOQ8aGkqhBha7ZzZyBjotnnvMkTH2Vf5i"
created_at: 2017-05-11 06:30:35.018380000 Z
updated_at: 2017-05-11 06:30:35.018380000 Z
admin: false

2017年7月13日 星期四

rails &

User.all.map{|u| u.id}
改寫簡潔漂亮
User.all.map(&:id)

rails 撈數據庫轉array數組

User.all.map(&:id)  => [36, 37, 1, 2, 4, 6, 7, 8, 9, 10, 11, 14, 13, 15, 17, 18, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 38, 12]

User.all.map(&:id).class => Array

rails map

哈希轉Array陣列
hash = { a:1, b:2, c:3 }
hash.map{|k,v| v} => [1, 2, 3] 

哈希數組
hash = { :a => 1, :b => 2, :c => 3 } <--覺得打字不順手
因为符号(Symbol)做為key的情况太普遍了,Ruby 1.9 干脆为这种用法定义了一种新句法:
也可以這樣寫 
hash = { a:1, b:2, c:3 }

k是key
v是value
在每個value裡面乘以2
hash.merge(hash) {|k,v| v*2 } => {:a=>2, :b=>4, :c=>6}

rails array移除掉nil

數組類型為Array 
["a",nil,"b"].class => Array 
 
移除掉空值 
["a",nil,"b"].compact => ["a", "b"]
 
沒有nil需要移除掉返回nil
["a","b"].compact! => nil