在方法中传递活动记录属性

时间:2017-08-24 10:55:41

标签: ruby-on-rails ruby string string-interpolation

我有一个方法,它接受一个rails活动记录对象数组,并根据传递给方法的第二个参数对这些记录进行排序。该方法类似于:

sort_providers(providers, "name")

当我调用方法unexpected tSTRING_BEG, expecting '('时,我得到 "gallery": [ { "galleryId": 113, "type": "image", "filename": "image_599bbbb569b78.png" }, { "galleryId": 114, "type": "image", "filename": "image_599bbdd023a31.png" } ], "likeCount": 2,

如何根据传入的第二个参数获取方法对数组进行排序?

2 个答案:

答案 0 :(得分:0)

尝试使用send

providers.sort_by! { |a, b| a.send(attr) <=> b.send(attr) }

答案 1 :(得分:0)

如果attr是符号:

providers.sort_by(&attr)