使用Rails 5,您如何编写一个按照您不一定要返回的列进行排序的查找程序?我有
Person.select("id, name").order('votes DESC').limit(15)
意思是我只想返回模型的“id”和“name”属性,但我希望模型本身按“投票”列排序。但是,运行上面的命令会出现错误
ActiveModel::MissingAttributeError: missing attribute: votes
如何编写按列排序的查找程序我并不总是想返回?
答案 0 :(得分:1)
pluck应该做的伎俩,但它返回一个[id,name]数组。
Person.order('votes DESC').limit(15).pluck(:id, :name)
find_by_sql返回一个ActiveRecord对象数组
Person.find_by_sql('SELECT id, name FROM persons ORDER BY votes DESC LIMIT 15')
答案 1 :(得分:0)
NSKeyedArchiver.archivedData(withRootObject:)
应该做的伎俩。只需要分离要选择的属性。