class Classification < ActiveRecord::Base
has_many :categorizations
class Categorization < ActiveRecord::Base
belongs_to :company
belongs_to :category
belongs_to :classification
Il modelllo Categorization ha come attributi, tra altri, company_id,
category_id e classification_id come si puo’ dedurre.
Nel form di creazione di una nuova Company associo le categorie e
automaticamente viene creata la tabella categorizations con i campi
company_id e category_id valorizzati.
Se contemporaneamente, nello stesso form, volessi valorizzare anche il
campo classification_id come potrei fare?
Nel form ho provato a mettere:
class Classification < ActiveRecord::Base
automaticamente viene creata la tabella categorizations con i campi
company_id e category_id valorizzati.
Se contemporaneamente, nello stesso form, volessi valorizzare anche il
campo classification_id come potrei fare?
Nel form ho provato a mettere:
class Classification < ActiveRecord::Base
automaticamente viene creata la tabella categorizations con i campi
company_id e category_id valorizzati.
Se contemporaneamente, nello stesso form, volessi valorizzare anche il
campo classification_id come potrei fare?
Nel form ho provato a mettere:
Classification e` un altro modello, quindi hai bisogno di una nested
form:
(Rails 3 - docs incompleti)
(2.3 ma non credo ci siano differenze)
I framework ti semplificano la vita se li conosci fino in fondo e
purtroppo ci vuole tanto tempo per impararli
Le Rails guides sono ottime, vi consiglio di leggerle (cosa che dovrei
fare anch’io).
Mi raccomando in company ricordati accepts_nested_attributes_for e se
hai settato attribute accessor sii sicuro che sia aggiunto
l’attributo usato in accepts_nested_attributes_for
Classification e` un altro modello, quindi hai bisogno di una nested
form:
Si pero’ non sono riuscito a spiegarmi:
non devo gestire Classification ma devo valorizzare gli extra
attributes di un join model (Categorization) al momento della
creazione di una nuova Company.
Si pero’ non sono riuscito a spiegarmi:
non devo gestire Classification ma devo valorizzare gli extra
attributes di un join model (Categorization) al momento della
creazione di una nuova Company.
Penso tu ti sia spiegato bene e Riccardo ti abbia puntato sulla giusta
direzione
Leggiti queste pagine delle API:
class Company < ActiveRecord::Base
has_many :categorizations
has_many :categories, :through => :categorizations
accepts_nested_attributes_for :categorizations
end
A questo punto nella form puoi fare una cosa di questo tipo:
<%= form_for @company do |company_form| %>
Name: <%= company.text_field :name %>
<%= fields_for @company. categorizations do |categorizations_fields|
%>
Registered? <%= categorizations_fields.check_box :registered %>
<% end %>
<%= company_form.submit %>
<% end %>
Prova a giocare un po’ con fields_for e vedi se quello che ti serve.
Prova a giocare un po’ con fields_for e vedi se quello che ti serve.
Allora…avevo gia’ provato ad usare fields_for e accept_nested…
Supponiamo che nel form per la creazione di una nuova Company associ
due categories e nella sezione fields_for valorizzo il campo
classification_id inserendoci una Classification (avevo gia’ creato
tre classifications), quello che succede e’ che nella tabella
categories mi vengono creati tre records:
company_id: 1, category_id: 2, classification_id: nil
company_id: 1, category_id: 4, classification_id: nil
company_id: 1, category_id: nil, classification_id: 4