Skip to content
Hierarchical ActiveRecord models. Inspired by acts_as_tree. Trees are shady.
Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
test
.gitignore
Gemfile
README.rdoc
Rakefile
acts_as_king.gemspec

README.rdoc

ActsAsKing

Rails gem to provide self referencing hierarchy for ActiveRecord models.

Installation

gem install acts_as_king

More preferrably in your Gemfile

gem 'acts_as_king'

Usage

The target for ActsAsKing is to be an easy to use, self explanitory gem.

Create a migration to add parent_id to your model:

rails g migration AddParentIdToComments

Add a column to your comments table

class AddParentIdToComments < ActiveRecord::Migration
  def self.up
    add_column :comments, :parent_id, :integer
    add_index :comments, :parent_id
  end
end

In your model:

class Comment < ActiveRecord::Base
  acts_as_king
end

Create a couple of comments

comment_1 = Comment.create # id: 1
comment_2 = Comment.create(:parent => comment_1) # id: 2

Get all top level comments

comments = Comment.kings
=> [#<Comment id: 1, parent_id: nil>]

Get the first top level comment and display the immediate children

comment = Comment.kings.first
comment.children
=> [#<Comment id: 2, parent_id: 1>]

Contributing

Contributing is easy. Fork the repository. Hack away. Create tests. Send a pull request.

You can’t perform that action at this time.