Forum: Ruby on Rails Send a array of objects from a view

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.
Jose Ernesto S. (Guest)
on 2009-06-06 03:13
(Received via mailing list)
Hi everyone.

I´m working on application that has a "has_and_belongs_to_many" betwen
two models: "expedientes" and "documentos".
When I´m on the console, I need to pass a Expedientes Array to
documentos, otherwise I get a ActiveRecord::AssociationTypeMismatch
exception.

Example:
>> d=Documento.new
=> #<Documento id: nil...
>> d.expedientes=[1]
ActiveRecord::AssociationTypeMismatch: Expediente(#18729340) expected,
got Fixnum(#108610)
  ...
>> d.expedientes="1"
ActiveRecord::AssociationTypeMismatch: Expediente(#18729340) expected,
got String(#113650)
...
>> d.expedientes=Expediente.find("1")
NoMethodError: undefined method `each' for #<Expediente:0x23a96a0>
...
>> d.expedientes=[Expediente.find("1")]
=> [#<Expediente id: 1, ...That´s ok!

How must I made this relationship from the view?
I´ve mading a Form.hidden_field from the view "new" with the name
"expedientes" and the value of the expediente.id of the
relationship,but seems incorrect.

What´s the best way to do that?
Franco C. (Guest)
on 2009-06-06 04:32
(Received via mailing list)
The best way (for me) is using nested attributes (http://
api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/
ClassMethods.html). You can look a very complete example of usage in:
http://github.com/alloy/complex-form-examples/tree/master and in
http://github.com/soldieron/jquery-nested-forms/tree/master

Regards.

Franco C..
Jose Ernesto S. (Guest)
on 2009-06-08 17:06
(Received via mailing list)
Thanks Franco...
This topic is locked and can not be replied to.