# Rails 2.1 dont create references

**URL:** <https://www.ruby-forum.com/t/rails-2-1-dont-create-references/139320>\
**Category:** Rails\
**Created:** [June 2, 2008, 10:23pm UTC](https://www.ruby-forum.com/t/rails-2-1-dont-create-references/139320 "2008-06-02T22:23:11Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![raf4net](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e5b9ba/32.png) [@raf4net](https://www.ruby-forum.com/u/raf4net)\
**Post date:** [June 2, 2008, 10:23pm UTC](https://www.ruby-forum.com/t/rails-2-1-dont-create-references/139320/1 "2008-06-02T22:23:11Z")

</div>

Hi,  
I´m new in Rails framework, and i´m trying to create my first app. I  
create two tables:

clients  
–id  
–name  
–phone

keys  
–id  
–client\_id  
–value

I use migration to create the relationship on tables:  
class AddRelationship \< ActiveRecord::Migration  
def self.up  
change\_table :keys do |t|  
t.belongs\_to :client  
end  
end

def self.down  
change\_table :keys do |t|  
t.remove\_belongs\_to :client  
end  
end  
end

but, when I insert a key without a client\_id, this is created  
successfully, but should return an error.  
Did I’m doing something wrong?

Ps: sorry about my poor english ☹

---

<div class="post-metadata">

**Author:** ![raf4net](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e5b9ba/32.png) [@raf4net](https://www.ruby-forum.com/u/raf4net)\
**Post date:** [June 2, 2008, 10:36pm UTC](https://www.ruby-forum.com/t/rails-2-1-dont-create-references/139320/2 "2008-06-02T22:36:01Z")

</div>

> but, when I insert a key without a client\_id, this is created  
> successfully, but should return an error.  
> Did I’m doing something wrong?

Rails does not by default enforce referential integrity for your models.  
You can add the necessary indexes and settings to enforce this  
referential integrity in your database layer, or you could put  
validation in your Key model to enforce the presence of a client\_id, or  
you could do both.

You could also create your keys using a construct like the following to  
ensure the keys are populated correctly:

client = Client.find(1)  
client.keys \<\< Key.new(blah blah blah)

---

<div class="post-metadata">

**Author:** ![raf4net](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e5b9ba/32.png) [@raf4net](https://www.ruby-forum.com/u/raf4net)\
**Post date:** [June 3, 2008, 2:22pm UTC](https://www.ruby-forum.com/t/rails-2-1-dont-create-references/139320/3 "2008-06-03T14:22:10Z")

</div>

Thanks Cayce…I’ll put validation on database.

On 2 jun, 17:36, Cayce B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
