而不是使用&
,
objects_array.collect(&:errors)
我可以使用&
同时调用两种方法吗?我想要这样的东西:
objects_array.collect(&:errors.full_messages)
有可能吗?
答案 0 :(得分:2)
单次传球和速记无法做到这一点。要么两次通过
objects_array.collect(&:errors).collect(&:full_messages)
或使用完整表格。
objects_array.collect{ |obj| obj.errors.full_messages }
答案 1 :(得分:2)
可以吗?
不,这只是一种速记方法,而是使用阻止..
objects_array.collect { |obl| obj.errors.full_messages }
答案 2 :(得分:1)
如果您重新定义Symbol#method_missing
以存储方法链,并且还使用存储的方法链重新定义Symbol#to_proc
以扩展到proc,则可以。但我很确定它会引入复杂性而不是它有助于引起一些严重问题。这不值得。