gpt4 book ai didi

ruby-on-rails - Rails : ActiveAdmin sort by index, 然后通过自定义方法值

转载 作者:行者123 更新时间:2023-12-05 07:45:27 25 4
gpt4 key购买 nike

所以,我有以下内容

Dialogue.rb
belongs_to Chapter
# Get the total number of dialogues in a chapter, then see what number we are
def order_in_chapter
chapter.dialogues.index(self) + 1
end

Chapter.rb
has_many Stories

章节也有一个“顺序号”,因此我们知道章节的显示顺序。

问题是,在 active admin 上,业务需求是按章节排序,然后是对话编号。按多个索引排序并不太难,但是按一个索引排序,然后按方法的返回值对返回的关联进行排序似乎是不可能的?

供引用:

ActiveAdmin.register Dialogue do
controller do
def scoped_collection
super.includes :chapter, :character
end
end
index do
column :chapter, sortable: "chapters.order_num"
end

这对章节进行了正确排序(第 1 章,然后是第 2 章,然后是第 3 章,等等)但是当我希望通过 dialogue.order_in_chapter 方法返回这些章节中的对话时,它们以困惑的顺序返回。

有办法吗?

我需要的伪代码是这样的:

StoryVoice.order(chapter: :asc).then_by(order_in_chapter: :asc)

最佳答案

找到一个方法:

column :chapter,
sortable: lambda { Chapter.includes(:dialogue)
.order('dialogue.order_in_chapter desc') }

关于ruby-on-rails - Rails : ActiveAdmin sort by index, 然后通过自定义方法值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41605568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com