Ruby on Rails/ActiveRecord/acts as
外观
Acts as List 将向 ActiveRecord 模型添加方法,这些方法提供将记录访问为列表的方法。
该acts_as_list指令将向 ActiveRecord 对象添加方法,以使每个实例充当列表中的一个元素。acts_as_list接受两个配置选项
- column : 用于保存位置的列的名称(默认值为position)
- scope : 限制要考虑为列表的内容。给定一个符号,它将附加 "_id"(如果还没有)并将其用作外键限制。还可以为它提供一个完整的字符串,如果您需要比仅外键更严格的范围,该字符串将被内插。示例acts_as_list :scope => ‘todo_list_id = #{todo_list_id} AND completed = 0’
指定了 acts_as_list 指令的模型的每个实例将自动包含用于将记录作为列表处理的方法
- decrement_position
- first?
- higher_item
- in_list?
- increment_position
- insert_at
- last?
- lower_item
- move_higher
- move_lower
- move_to_bottom
- move_to_top
- remove_from_list
更改列表中项目位置的方法会立即影响持久性数据。例如,调用move_to_top将立即生效。
class Person < ActiveRecord::Base
acts_as_list
end
假设数据库中有三个人(Joe、Bob 和 Jane,最初按此顺序)
p = Person.find_by_name('Joe') p.first? => true p.in_list? => true p.move_to_bottom p.first? => false p.last? => true
该acts_as_tree指令将向 ActiveRecord 对象添加方法,以使每个实例充当树中的一个节点。