5

Sono un binario noob quindi il sotto è probabilmente in difetto di comprensione, tuttavia ho cercato/leggere tutto il giorno e non riesco a trovare la soluzione.Creazione di un HABTM Rails 3 con Active Admin genera un 'Impossibile assegnare massa attributi protetti:' errore

ho due modelli - progetto e tecnologia:

Progetto:

class Project < ActiveRecord::Base 

    attr_accessible description, :name 

    has_and_belongs_to_many :technologies, :join_table => :projects_technologies 

end 

Tecnologia:

class Technology < ActiveRecord::Base 

    attr_accessible :abbr, :description, :name 

    has_and_belongs_to_many :projects, :join_table => :projects_technologies 

end 

La mia migrazione Create_Projects_Technologies è stata la seguente:

class CreateProjectsTechnologies < ActiveRecord::Migration 
    def self.up 

    create_table :projects_technologies, :id => false do |t| 
     t.references :project 
     t.references :technology 
    end 
    add_index :projects_technologies, [:project_id, :technology_id] 
    add_index :projects_technologies, [:technology_id, :project_id] 
    end 

    def self.down 
    drop_table :projects_technologies 
    end 
end 

sto quindi utilizzando Admin attivo per creare e modelli di modifica del project tramite il seguente form:

ActiveAdmin.register Project do 

    form do |f| 
    f.inputs "Project attributes" do 
     f.input :name 
     f.input :description 
     f.input :technologies, as: :check_boxes 
    end 
    f.buttons 
    end 

end 

Questo dimostra in modo corretto tutti i miei tecnologie come caselle di controllo però appena ho presentare il modulo mi ha colpito il seguente errore, che non sono stato in grado di superare:

ActiveModel :: :: MassAssignmentSecurity errore in Admin :: ProjectsController # aggiornamento

Can't mass-assign protected attributes: technology_ids 

Ogni aiuto è molto molto apprezzato: D

+0

Nel caso in cui nessun altro ottiene questo mio errore è venuto 'Non può mass-assegnazione protette: # {attrs.join} 'piuttosto che avere' category_ids'. – ScottJShea

risposta

7

semplice add technology_ids al progetto attr_accessible

attributi
attr_accessible :client, :description, :name, :technology_ids 
+0

Grazie mille! Non posso credere di averlo perso. Qualcosa sul non vedere la foresta a causa di tutti gli alberi: P – Terminalpunk

+0

+1 Ahh. Il pezzo mancante. Grazie. –

+0

ma per quanto riguarda l'assegnazione di massa? Voglio dire, capisco che a causa di questo è un'area di amministrazione nessuno senza diritti speciali può fare qualsiasi cosa, ma ancora questo non sembra giusto. (Sto parlando di aggiungere technology_ids a attr_accessible) –

Problemi correlati