Sto costruendo un'applicazione che deve assegnare un compito a più datori di lavoro.Rails 4: caselle di controllo con has_many attraverso
devo costruire questi modelli:
#assignment.rb
class Assignment < ActiveRecord::Base
has_many :employer_assignments
has_many :employers, :through => :employer_assignments
end
#employer.rb
class Employer < ActiveRecord::Base
has_many :employer_assignments
has_many :assignments, :through => :employer_assignments
end
#employer_assignment.rb
class EmployerAssignment < ActiveRecord::Base
belongs_to :employer
belongs_to :assignment
end
e ora voglio il modulo per salvare la tabella employer_assignment ma il seguente codice che ho usato per il mio modulo non funziona.
<div class="field">
<%= f.label :employer_ids %><br />
<%= collection_check_boxes(:assignment, :employer_ids, Employer.all, :id, :name) %>
</div>
ho fatto aggiungere: employer_ids al mio controller incarico da cui cerco di inviare il modulo che fa creare l'incarico, ma non crea il record nella tabella employer_assignment. Quando li aggiungo tramite la console (Assignment.last.employers < < Employer.all ) tutto funziona correttamente. Sono sicuro che mi manca qualcosa ma non riesco a capire cosa.
Grazie in anticipo.
Hai trovato una soluzione a questo. Sto avendo un problema simile. Non salva nel DB – Benjamin
I binari IIRC utilizza per impostazione predefinita parametri forti, che non supportano i tipi di array. Quindi è necessario definire esplicitamente che 'employer_ids' dovrebbe essere una matrice, affinché sia consentita attraverso. –