# Does Rails have a mode which ensures associations work at the object level (i.e. prior to any DB sav

**URL:** <https://www.ruby-forum.com/t/does-rails-have-a-mode-which-ensures-associations-work-at-the-object-level-i-e-prior-to-any-db-sav/157764>\
**Category:** Rails\
**Created:** [January 15, 2009, 2:54am UTC](https://www.ruby-forum.com/t/does-rails-have-a-mode-which-ensures-associations-work-at-the-object-level-i-e-prior-to-any-db-sav/157764 "2009-01-15T02:54:12Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [January 15, 2009, 2:54am UTC](https://www.ruby-forum.com/t/does-rails-have-a-mode-which-ensures-associations-work-at-the-object-level-i-e-prior-to-any-db-sav/157764/1 "2009-01-15T02:54:12Z")

</div>

Hi,

I’m noted with Rails that if one assigns one object (say Book “b”) to  
another object (say Chapter “c”) that the call “b.chapters” doesn’t  
work.

Question: Is there a way to ensures associations work both ways at the  
object level (i.e. prior to any DB saves)? (i.e. so in the above cases  
after I allocate a Book against a Chapter (e.g. c.book = b), that  
“b.chapters” should then work?

Overall example:  
b = Book.new  
c = Chapter.new  
c.book = b  
c.book ==\> works and gives b object  
b.chapters ==\> DOES NOT WORK - gives []

Also:  
b = Book.new  
c = Chapter.new  
b.chapters = [c]  
b.chapters ==\> works  
c.book ==\> DOES NOT WORK

Notes:

- This is a specific question I have (relates to what I’m trying to  
achieve  
is a separate post "Validation spanning multiple models(tables) - how  
can  
this "):

Thanks in advance

–  
Greg  
[http://blog.gregnet.org/](http://blog.gregnet.org/)

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [January 15, 2009, 2:59am UTC](https://www.ruby-forum.com/t/does-rails-have-a-mode-which-ensures-associations-work-at-the-object-level-i-e-prior-to-any-db-sav/157764/2 "2009-01-15T02:59:27Z")

</div>

There doesn’t seem to be and from the object level doing:

book.chapters \<\< chapter

Doesn’t mean that chapter.book will be assigned, as you haven’t  
assigned it yourself. In most programming languages there is no way to  
make a two-way association automatically. Even well know ORM tools  
like Hibernate don’t do this, as it’s way too intrusive.

But you can always override rails default behaviour.

- 

Maurício Linhares  
[http://alinhavado.wordpress.com/](http://alinhavado.wordpress.com/) (pt-br) | [http://blog.codevader.com/](http://blog.codevader.com/)  
(en)

On Wed, Jan 14, 2009 at 10:53 PM, Greg H.

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [January 15, 2009, 3:24am UTC](https://www.ruby-forum.com/t/does-rails-have-a-mode-which-ensures-associations-work-at-the-object-level-i-e-prior-to-any-db-sav/157764/3 "2009-01-15T03:24:39Z")

</div>

any pointers/ideas re how to over-ride the Rails behavior for some  
classes?

I had a quick look at how an association value is assigned & it looked  
a bit hairy (all this reflection stuff)…wondering if it maybe  
non-trivial & have gottchas?

tks

On 1/15/09, Maurício Linhares [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> But you can always override rails default behaviour.
> 
> > c = Chapter.new
> > 
> > [http://blog.gregnet.org/](http://blog.gregnet.org/)
> > 
> > >
> 
> >

–  
Greg  
[http://blog.gregnet.org/](http://blog.gregnet.org/)

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [January 15, 2009, 12:35pm UTC](https://www.ruby-forum.com/t/does-rails-have-a-mode-which-ensures-associations-work-at-the-object-level-i-e-prior-to-any-db-sav/157764/4 "2009-01-15T12:35:52Z")

</div>

On 15 Jan 2009, at 02:23, Greg H. wrote:

> any pointers/ideas re how to over-ride the Rails behavior for some  
> classes?
> 
> I had a quick look at how an association value is assigned & it looked  
> a bit hairy (all this reflection stuff)…wondering if it maybe  
> non-trivial & have gottchas?

There is a plugin (

> **[GitHub - h-lame/parental\_control: A plugin for rails that allows has\_one,...](https://github.com/h-lame/parental_control/tree/master)**
>
> master

) which implements a solution to this. There is a proposal to  
integrate it (or a variant of it) into core.

Fred
