跳转到内容

Ruby on Rails/ActiveRecord/acts as

来自维基教科书,开放的书籍,开放的世界

acts_as_list

[编辑 | 编辑源代码]

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

[编辑 | 编辑源代码]

acts_as_tree指令将向 ActiveRecord 对象添加方法,以使每个实例充当树中的一个节点。

华夏公益教科书