Rather than posting my code and asking "what's wrong", here's a simpler version: The problem is my C's are not saving or updating the foreign key for B when I create or update a C. The foreign key value remains nil.
A has many Bs A has many Cs
B has many Cs B belongs to A The B model contains an A_id foreign key field
C belongs to A C belongs to B The C model contains both A_id and B_id foreign key fields
So a C can either belong directly to A (with B being null) or it can belong to both an A and B. This is not a C belongs to A through B relationship - Cs can belong directly to an A. Cs are created using current_A.Bs.new, so they are already automatically scoped to the correct A.
When creating or editing a C, a table of possible Bs is created and displays correctly and I am able to select one of the possible choices or leave it set to the default ('none selected' / nil value) choice. This all worked fine before I layered on the A model. I was able to create Cs that were either free standing or belonged to a B.
Now, the terminal console shows the URL string contains: "B_id"=>"15", so it appears that the select function is grabbing the correct id from the table for the B choice that was selected. However, when I then debug the updated C record, the B_id value is always nil.
So, why isn't the B_id field getting updated in this situation?
Thanks in advance.