From 54ce21ee8d59835dba8fa167ad79490fbba0ca17 Mon Sep 17 00:00:00 2001 From: Neeraj Singh Date: Wed, 22 May 2013 10:37:37 -0400 Subject: Added an example for primary_key option --- guides/source/association_basics.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'guides/source/association_basics.md') diff --git a/guides/source/association_basics.md b/guides/source/association_basics.md index 16a5241319..1590f1d81b 100644 --- a/guides/source/association_basics.md +++ b/guides/source/association_basics.md @@ -1511,6 +1511,20 @@ end By convention, Rails assumes that the column used to hold the primary key of the association is `id`. You can override this and explicitly specify the primary key with the `:primary_key` option. +Let's say that `users` table has `id` as the primary_key but it also has +`guid` column. And the requirement is that `todos` table should hold +`guid` column value and not `id` value. This can be achieved like this + +```ruby +class User < ActiveRecord::Base + has_many :todos, primary_key: :guid +end +``` + +Now if we execute `@user.todos.create` then `@todo` record will have +`user_id` value as the `guid` value of `@user`. + + ##### `:source` The `:source` option specifies the source association name for a `has_many :through` association. You only need to use this option if the name of the source association cannot be automatically inferred from the association name. -- cgit v1.2.3