ฉันจะส่งแบบสอบถามลำดับ jsonb ไปยังตัวเลือก sortable:
สำหรับคอลัมน์ Active Admin ได้อย่างไร
โมเดลของฉันมีโครงสร้างดังนี้:
# User Model
class User < ActiveRecord::Base
has_one :level
end
# Level Model
class Level < ActiveRecord::Base
belongs_to :user
end
# Level Migration
create_table "levels", force: :cascade do |t|
t.integer "user_id"
t.jsonb "ranked_scores"
end
โครงสร้าง :ranked_score
json คือ:
# level.ranked_scores
{"stage_1"=>111, "stage_2"=>222, "stage_3"=>333}
ฉันได้ลองเรียงลำดับ User
โดยใช้แอตทริบิวต์ :ranked_scores
ของ Level
ดังนี้:
# app/admin/user.rb
ActiveAdmin.register User do
controller do
def scoped_collection
end_of_association_chain.includes(:level)
end
end
index do
column "Stage 1 Score", sortable: "level.ranked_scores -> 'stage_1'" do |user|
user.level.ranked_scores['stage_1']
end
end
end
ActiveAdmin.register Level do
belongs_to :user
end
URL ที่สร้างขึ้นเพื่อจัดเรียงคอลัมน์คือ
http://localhost:3000/admin?order=levels.ranked_scores%5B%27stage_1%27%5D_desc
แต่คอลัมน์จะไม่เรียงลำดับจากมากไปน้อยสำหรับ stage_1
มีความคิดเห็นเกี่ยวกับสิ่งที่เกิดขึ้นที่นี่หรือไม่?
user.level.ranked_scores['stage_1']
ตามลำดับ - person Puffo   schedule 16.08.2015sortable: "level.ranked_scores -> 'stage_1'"
ในขณะนี้ แบบสอบถามฐานข้อมูลมีลักษณะอย่างไรหากคุณใช้การเรียงลำดับ - person Timo Schilling   schedule 16.08.2015subquery_for_count
- person dax   schedule 03.09.2015column 'Gold earned', sortable: "cast(payload ->> 'gold_earned' as integer) " do |gold|
- person dax   schedule 03.09.2015