【问题标题】:How to get Rails' acts_as_list to add new items to the beginning of a list?如何让 Rails 的acts_as_list 将新项目添加到列表的开头?
【发布时间】:2012-08-22 22:26:49
【问题描述】:

我有一个与acts_as_list 集成的模型。但是,默认情况下,创建的新项目会添加到列表的 end 中。是否有一种默认方式可以将新项目添加到开始

谢谢!

【问题讨论】:

    标签: ruby-on-rails acts-as-list


    【解决方案1】:

    尝试使用add_new_at 配置选项:

    acts_as_list scope: :todo, add_new_at: :top
    

    【讨论】:

    • 这是最好的答案。我删除了关于列默认方法的答案,因为它不再有效。
    • @yuval 你应该接受这个答案,因为它仍然有效,并且是官方方法。
    【解决方案2】:

    您可以更改列表项的显示方式。颠倒todo_items 的顺序可以有效地实现这一点。

    has_many :todo_items, :order => "position ASC"

    否则,也许您可​​以在after_create 中手动设置项目上的position 列。

    【讨论】:

    • 假设 OP 在他们的应用程序中进行了某种拖放重新排序,这可能会中断。这将尝试根据它们在 id 数组中的索引位置重新排序所有项目。只是需要注意的事情。
    猜你喜欢
    • 2010-10-23
    • 2014-12-29
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    相关资源
    最近更新 更多