Complex forms: only one level of “arrayness” is allowed?

Hi all,

I thought I was trying to do something rather simple, but it has caused me a lot of headaches. Here it is:

- in my program: model_a has_many model_b. model_b has_many model_c.

- in the user interface, I would like the user to be able to fill the information for one model_a, one or more associated model_bs (corresponding fields could be added with a set of links 'add/remove a model_b'), and for each model_b added, one or more model_c (with the same mechanism).

Thanks to the great tutorial "Handle multiple models in one form", it's easy to handle the first step (any number of model_b per model_a), but I can't get the second step to work. The natural indexing should (I think) be:

"model_a[model_b_attributes][model_c_attributes][an_attribute]"

But it doesn't seem to work. I read here http://guides.rubyonrails.org/form_helpers.html that "only one level of “arrayness” is allowed" and that I should use hashes instead, but I am not quite sure I understand how to do it.

Do you have any idea?

Thanks a lot PJ

What that comment is saying is that you can replace an array eg [a,b,c] with a hash eg {1 => a, 2=> b, 3=>c} Generating those keys is up to your client side code, approaches included using a number you increment or going for some unique thing you generate on the spot (eg time in milliseconds concatenated with a random number) so that you don't have to keep track of how many fields and what not you have created clientside.

Fred

Thanks Fred.

Considering there is a bit of "wizardry" that needs to be done and that Rails doesn't include helpers to do this simply, does it mean it is not recommended to build such complex forms?

I am not very experienced with Rails, but I love the fact it is very "clean" and I feel a bit cautious having to generate keys manually.

PJ

Thanks Fred.

Considering there is a bit of "wizardry" that needs to be done and that Rails doesn't include helpers to do this simply, does it mean it is not recommended to build such complex forms?

I am not very experienced with Rails, but I love the fact it is very "clean" and I feel a bit cautious having to generate keys manually.

There is the nested forms stuff in rails 2.3 (unfortunately not yet documented in the guide).

Fred