Hi!
I have a little problem in a HABTM relationship.
I have this schema:
expedients <—> expedients_documents <—> documents
expedients(HABTM)docuements <-> documetns(HABTM)expedients
From the expedients view, I add a new document, passing as parameter
the expedients ids (maybe more than one).However, at time that I
create the document, I cannot put the values in the table
expedients_documents.
Should I use nested attributes for this? Im reading about, and i think
that putting in the documents/new view a fields_for :expedients must
complaint this, but I cannot get a correct result.
Thanks, and best regards.
Solved.I write a comment for newbies as me…sorry for the english.
The problem raises from the generation of the join table.This table,
cannot must have a id attribute as a primary key, instead of this,
must have a primary key composed by the two foreign keys.In Rails,
this means a :id => false in the migration like this…
class DocumentosExpedientes < ActiveRecord::Migration
def self.up
create_table :documentos_expedientes,:id => false do |t|
t.integer :documento_id
t.integer :expediente_id
t.timestamps
end
end
After this, the only thing that I must do is
documento.expedientes_ids << expedientes #expedientes is a array of
#Expediente
On 29 jun, 10:46, Jose Ernesto S. [email protected]
You might as well skip the timestamps as well, as the “HABTM table
with extra fields” functionality disappeared in 2.3.
–Matt J.
On Jun 29, 10:39 am, Jose Ernesto S. [email protected]