Commit 86c7dca0 by liyijie

try_method support try_method

parent 08348a6f
...@@ -18,7 +18,7 @@ module TalltyImportExport ...@@ -18,7 +18,7 @@ module TalltyImportExport
# { key: 'score', name: '考核分' }, # { key: 'score', name: '考核分' },
# ] # ]
# export_headers_result / headers # export_headers_result / headers
# key: 属性的英文名 # key: 属性的英文名,可以支持user.name这样的方式
# name: 属性的中文名 # name: 属性的中文名
# attr_type: 属性的类型 # attr_type: 属性的类型
# format: excel是否需要特定的格式,目前主要是类似于身份证号,可以用string # format: excel是否需要特定的格式,目前主要是类似于身份证号,可以用string
...@@ -156,13 +156,22 @@ module TalltyImportExport ...@@ -156,13 +156,22 @@ module TalltyImportExport
elsif header[:json] elsif header[:json]
record.send(header[:json])[header[:key]] record.send(header[:json])[header[:key]]
else else
record.send(header[:key]) try_method(record, header[:key])
end end
handle_format(data, header) handle_format(data, header)
rescue rescue
'' ''
end end
def try_chain record, arr
arr.inject(record, :try)
end
def try_method record, method
arr = method.to_s.split(/\./)
try_chain record, arr
end
# 根据数据类型 attr_type 进行数据的格式化 # 根据数据类型 attr_type 进行数据的格式化
def handle_format data, header def handle_format data, header
case header[:attr_type].to_s case header[:attr_type].to_s
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment