Forum: Ruby on Rails Seeking complete example/plugin of simple usage of Lookup (a

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.
Sorin Sbarnea (Guest)
on 2006-05-26 15:50
(Received via mailing list)
I think the second most useful usage of the auto_complete is for editing
relations (associations).

I've searched for almost a week on all RoR resources but I didn't found
any solution to this problem. Instead I've discovered that there are
many looking for this.

I think that this problem must be clearly solved and the clear how-to
should published on one-more RoR sites.

Because I trust the power of examples I'll try to explain the problem
using an example.

The description of the problem
------------------------------
1. We have two models: Book(s) and Contact(s). A book has_one :contact.
Contact doesn't know about book.
2. Because we have a lots of Contacts we can't use dropdown for
selecting a contact for a book.
3. Also because contacts can have the same name we must submit the ID of
the contact.
4. Are interested in a magic way of mapping the relations on submit. We
don't want to write more code for every new editable relation.
5. Additional optional behavior: require a valid lookup value (empty not
accepted).

Ideas for implementation
-------------------------
The form should submit something like this: :book => { :name => "my
book", :author => { :id => 123, :name => "John"} }

The new (improved) update_attributes should work recursively: when he
will find the :author key in the has it will know that :author is a
relation and will call update attributes for it.

I looking for comments, hints or ever portions of code related to this
subject.

PS. How do I make the Contact auto_complete to work in the book form
without inserting other instance variable?
This topic is locked and can not be replied to.