在方法中传递活动记录属性
Pass active record attributes in a method
我有一个方法,它采用 rails 个活动记录对象数组,并根据传递给该方法的第二个参数对这些记录进行排序。该方法类似于:
def sort_provider(providers, attr)
provider.sort!(|a,b| a."#{attr}" <=> b."#{attr}")
end
当我调用方法 sort_providers(providers, "name")
时,我得到一个 unexpected tSTRING_BEG, expecting '('
。
如何获取根据传入的第二个参数对数组进行排序的方法?
尝试使用send
providers.sort_by! { |a, b| a.send(attr) <=> b.send(attr) }
如果attr
是一个符号:
providers.sort_by(&attr)
我有一个方法,它采用 rails 个活动记录对象数组,并根据传递给该方法的第二个参数对这些记录进行排序。该方法类似于:
def sort_provider(providers, attr)
provider.sort!(|a,b| a."#{attr}" <=> b."#{attr}")
end
当我调用方法 sort_providers(providers, "name")
时,我得到一个 unexpected tSTRING_BEG, expecting '('
。
如何获取根据传入的第二个参数对数组进行排序的方法?
尝试使用send
providers.sort_by! { |a, b| a.send(attr) <=> b.send(attr) }
如果attr
是一个符号:
providers.sort_by(&attr)