我有以下示例:
@ads = Ad.all
我需要按受欢迎程度排序,因此它基于两个整数列:contacts_count
和visualizations
。
我想知道是否有以下选项:
1)首先列出联系人数量最多的广告,并contacts_count = 0
显示按visualizations
数量排序的记录。
2)不知何故,属性权重到两个领域,例如:5 个联系和 3 个可视化或类似的东西,并按相关性排序。
我如何使用活动记录或任何搜索宝石来做到这一点?
模式文件
create_table "ads", force: :cascade do |t|
t.string "photo"
t.text "description"
t.string "category"
t.integer "user_id"
t.integer "visualizations", default: 0
t.integer "contacts_count", default: 0
t.index ["user_id"], name: "index_ads_on_user_id", using: :btree
end
从你的描述中我了解到,你需要的不是搜索而是排序。
简短的回答:
@ads = Ad.order(:contacts_count, :visualization)
等等,但为什么?:
首先列出联系人数量最多的广告
先订购 contacts
到记录
contacts_count = 0
显示按visualizations
编号排序的记录。
这种说法有点不准确,您将使用visualizations
作为决胜局(甚至在的情况下,contacts_count = 0
或恰好等于contacts_count
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句