Plugins - Foreign Key Associations

StarAdd to favorites

Foreign Key Associations is a plugin that automatically creates associations based on foreign-keys. The associations are created at runtime—ie. as your ActiveRecord models are loaded—so they will always be up-to-date.

For example, given a foreign-key from a customer_id column in an orders table to an id column in a customers table, the plugin creates:

  Order.belongs_to :customer
  Customer.has_many :orders

If there is a uniqueness constraint—eg unique index—on a foreign-key column, then the plugin will creates a has_one instead of a has_many.

For example, given a foreign-key from an order_id column with a uniqueness constraint in an invoices table to an id column in an orders table, the plugin creates:

  Invoice.belongs_to :order
  Order.has_one :invoice

Additionally, if there is a position column in the child table, the parent association will be created with an order clause.

For example, given a foreign-key from a order_id column in an order_lines table containing a position column, to an id column in a orders table, the plugin creates:

  OrderLine.belongs_to :orders
  Order.has_many :lines, :order => :position

And finally, notice that in the previous example, the association name used for the Order.has_many is :lines and not :order_lines. More specifically, the plugin removes the prefix from has_many and has_one associations if the the name of parent class forms a proper prefix of the child class name.

The plugin fully supports and understands the following active-record configuration properties:

  • config.active_record.pluralize_table_names
  • config.active_record.table_name_prefix
  • config.active_record.table_name_suffix

Dependencies

  • RedHill on Rails Core (redhillonrails_core)

See Also

  • Foreign Key Migrations (foreign_key_migrations).

Red Hill Consulting

http://www.redhillconsulting.com.au/rails_plugins.html

svn://rubyforge.org/var/svn/redhillonrails/trunk/vendor/plugins/foreign_key_associations

Rails' (MIT)

  • Currently 5.0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Misc. Enhancements

Tags

Comments

Add a comment

Search Plugins

Query syntax

Plugins by Category

Sponsors

Rails Kits: Get Code. Get Moving.

Have a comment?