ho un modello molto sempliceinput di form Admin personalizzati attivi per rapporto has_and_belongs_to_many
class Lifestyle < ActiveRecord::Base
attr_accessible :name
has_and_belongs_to_many :profiles
end
che ha una relazione has_and_belongs_to_many
con Profile
class Profile < ActiveRecord::Base
attr_accessible ...
belongs_to :occupation
has_and_belongs_to_many :lifestyles
accepts_nested_attributes_for :lifestyles
end
voglio usare ActiveAdmin per modificare l'oggetto profilo, ma Assegna anche stili di vita a un profilo. Dovrebbe essere simile a quello relativo allo belongs_to :occupation
, in quanto viene risolto automaticamente da ActiveAdmin in una casella personale con le opzioni pre-compilate con le occupazioni disponibili.
Ho provato a utilizzare il metodo di creazione modulo has_many
, ma questo mi ha permesso solo di mostrare un modulo per digitare il nome dello stile di vita e al momento dell'invio, ha restituito un errore.
f.object.lifestyles.build
f.has_many :lifestyles do |l|
l.input :name
end
errore che ottengo:
Can't mass-assign protected attributes: lifestyles_attributes
Il modo perfetto per me sarebbe quello di costruire diverse caselle, uno per ogni stile di vita nel DB. Selezionato significa che lo stile di vita è collegato al profilo e mezzi non selezionati per eliminare la relazione.
Ho grandi dubbi sul fatto che sia possibile utilizzare ActiveAdmin e senza dover creare una logica molto complessa per gestire questo problema. Lo apprezzerei molto se esprimessi la tua opinione e mi consiglierei se dovessi andare in questo modo o affrontarlo in modo diverso.
+1 per avere il tempo di rispondere alla tua stessa domanda in dettaglio. – cdesrosiers
Interessante che non ho dovuto specificare manualmente la 'collection' (activeadmin 0.5.1, formtastic 2.2.1). Ottima risposta comunque! – asymmetric