gpt4 book ai didi

ruby-on-rails - 如何更改 ActiveScaffold "actions"的显示顺序?

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:16 24 4
gpt4 key购买 nike

我在 Ruby on Rails 应用程序中使用 ActiveScaffold,并使用 CSS 将表格中的默认“操作”文本(即“编辑”、“删除”、“显示”)替换为图标。我还使用 action_link.add(“移动”和“复制”)添加了一些自定义操作。

为清楚起见,我希望图标以不同的顺序显示。具体来说,我希望“编辑”成为显示的第一个图标。

我似乎能够通过更改 Controller 中定义的顺序来更改 action_links 的顺序。我还能够通过首先 config.actions.excluding 一切,然后以特定顺序使用 config.actions.add 添加它们来更改默认操作的顺序。

但是,我的自定义操作似乎总是出现在列表中默认操作之前。

理想情况下,我希望它们显示“编辑”、“复制”、“移动”、“删除”(即内置、自定义、自定义、内置)。谁能建议我该怎么做?

我的一个想法是将“编辑”重新定义为自定义操作(具有默认功能),但我也不知道该怎么做。

最佳答案

警告:我不知道ActiveScaffold。这个答案是基于我阅读它的源代码。

看起来 action_links 变量是一个自定义数据结构,称为 ActionLinks。它在 ActiveScaffold::DataStructures 中定义。

在内部,它有一个@set变量,它根本不是一个Set,而是一个ArrayActionLinks 有一个adddeleteeach 方法作为这个@set< 的看门人 变量。

显示链接时,ActiveScaffold 执行此操作(在 _list_actions.rhtml 中):

<% active_scaffold_config.action_links.each :record do |link| -%>
# Displays the link (code removed for brevity)
<% end -%>

因此,除了扩展 ActiveScaffold::DataStructures::ActionLinks 以添加一种方法来对 @set 中的值进行不同的排序之外,似乎没有的方法,至少不是一般情况下。

如果我是你,我会添加一个名为 order_by! 的东西,你向它传递一个符号数组,顺序正确,它求助于 @set .这样,您就可以在添加完自定义操作后调用它。

关于ruby-on-rails - 如何更改 ActiveScaffold "actions"的显示顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59207/

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