代码之家  ›  专栏  ›  技术社区  ›  Brent

如何更改ActiveScaffold“actions”的显示顺序?

  •  2
  • Brent  · 技术社区  · 16 年前

    我在rubyonrails应用程序中使用ActiveScaffold,并用CSS图标替换了表中默认的“actions”文本(即“edit”、“delete”、“show”)。我还添加了一些带有action的自定义操作_链接.add(“移动”和“复制”)。

    我想让图标以不同的顺序显示 比实际情况要好。具体来说,我希望“编辑”是第一个显示的图标。

    我似乎可以通过改变控制器中定义的顺序来改变动作链接的顺序。我还可以首先更改默认操作的顺序config.actions.排除所有的,然后用config.actions.add以特定的顺序。

    我的习惯动作似乎总是出现 之前 默认操作 在列表中。

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

    我的一个想法是将“edit”重新定义为一个自定义操作(具有默认功能),但我也不知道如何实现这一点。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Jordi Bunster    16 年前

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

    它看起来像 action_links ActionLinks . 定义见 ActiveScaffold::DataStructures .

    @set 变量,它不是 Set 好吧,但是 Array 操作链接 有一个 add , delete ,和 each @设置 变量。

    显示链接时, 做这个吗 _list_actions.rhtml ):

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

    ActiveScaffold::DataStructures::ActionLinks 添加对值进行排序的方法 @设置 不同的是,似乎没有办法做到这一点,至少在一般情况下是这样。

    如果我是你,我会加上一个叫 order_by! ,在那里你传递给它一系列的符号,有适当的顺序,它就会重新开始 @设置 . 这样,您可以在添加完自定义操作后调用它。