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

标签 ruby-on-rails ruby activescaffold

我在 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/

相关文章:

ruby-on-rails - 如何在事件脚手架 rails 中添加新链接 3

ruby-on-rails - 如何在 ROR 中使用 ActiveScaffold 一次创建多个记录

ruby-on-rails - 在 PDF 生成过程完全完成后调用 rails 的 Action 。 - Prawn + rails

ruby-on-rails - Rails 部分空集合

ruby-on-rails - 如何将我的 Rails 搜索表单与 Bootstrap 搜索设计连接起来?

ruby-on-rails - 用符号转换哈希数组

Ruby - 乘法问题

ruby-on-rails - 使用 Nokogiri/Mechanize 存储和迭代链接数组

ruby - Ruby 中的闭包

ruby-on-rails - ActiveScaffold:如何为多态关联创建下拉选择?