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

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D5df9fcd7ef4c3c937435d7d6adeab2a?d=identicon&s=25 Greg Hauptmann (Guest)
on 2009-01-15 02:54
(Received via mailing list)
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/
A91bd6cef23eb3516245a092e196c4da?d=identicon&s=25 Maurício Linhares (mauricio)
on 2009-01-15 02:59
(Received via mailing list)
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/ (pt-br) | http://blog.codevader.com/
(en)



On Wed, Jan 14, 2009 at 10:53 PM, Greg Hauptmann
D5df9fcd7ef4c3c937435d7d6adeab2a?d=identicon&s=25 Greg Hauptmann (Guest)
on 2009-01-15 03:24
(Received via mailing list)
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 <mauricio.linhares@gmail.com> wrote:
> But you can always override rails default behaviour.
>>
>>   c = Chapter.new
>>
>> http://blog.gregnet.org/
>>
>>
>>
>> >
>>
>
> >
>


--
Greg
http://blog.gregnet.org/
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2009-01-15 12:35
(Received via mailing list)
On 15 Jan 2009, at 02:23, Greg Hauptmann 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 (
http://github.com/h-lame/parental_control/tree/master
  ) which implements a solution to this. There is a proposal to
integrate it (or a variant of it) into core.

Fred
This topic is locked and can not be replied to.