Agile Web Development

Build it. Launch it. Love it.

Acts As View

Allows AR models to behave as same as view tables. It’s similar to STI but more powerful cause we can specify plural columns.

Usage

Let’s consider following table that manages students with two columns “grade” and “deleted”, where “deleted” means logical deletion.

  class Member < ActiveRecord::Base; end

  class ActiveMember < Member
    acts_as_view :deleted => false
  end

  class DeletedMember < Member
    acts_as_view :deleted => true
  end

  class ActiveGrade2Member < Member
    acts_as_view :deleted => false, :grade=>2
  end

  class InheritedActiveGrade2Member < ActiveMember
    acts_as_view :grade=>2
  end

We can easily read records as same as using DB view table.

  ActiveMember.find(:all)
  # => SELECT * FROM members WHERE (( deleted = 'f' ))
  DeletedMember.find(:all)
  # => SELECT * FROM members WHERE (( deleted = 't' ))
  ActiveGrade2Member.find(:all)
  # => SELECT * FROM members WHERE (( deleted = 'f' ) AND ( grade = 2 ))
  InheritedActiveGrade2Member.find(:all)
  # => SELECT * FROM members WHERE (( ( deleted = 'f' ) ) AND ( ( grade = 2 ) ))

Vitals

Home http://habtm.com/articles/2006/07/23/acts_as_view
Repository http://wota.jp/svn/rails/plugins/branches/stable/acts_as_view/
License
Tags Tag_red
Rating (11 votes)
Owner Maiha
Created 25 July 2006

Comments

Add a comment