-
Notifications
You must be signed in to change notification settings - Fork 3
License
crishoj/foreign_key_associations
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
= Foreign Key Associations 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 The plugin also supports the creation of +has_and_belongs_to_many+ associations. For example, given the tables +product_product_categories+ with foreign-keys to both the +product+ and +product_categories+ tables, the plugin creates: Product.has_and_belongs_to_many :categories ProductCategory.has_and_belongs_to_many :products And finally, notice that in one of the previous examples, the association name used for the <code>Order.has_many</code> is <code>:lines</code> and not <code>:order_lines</code>. 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: * <code>config.active_record.pluralize_table_names</code> * <code>config.active_record.table_name_prefix</code> * <code>config.active_record.table_name_suffix</code> === Dependencies * RedHill on Rails Core (redhillonrails_core) === See Also * Foreign Key Migrations (foreign_key_migrations). === License This plugin is copyright 2006 by RedHill Consulting, Pty. Ltd. and is released under the MIT license.
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published