Mongoid w / Rails, attr_accessible - "Keine Methode gefunden"

8
  • Generierte Rails App ohne aktiven Datensatz
  •   
  • Passende Edelsteine ​​für Mongoid (Mongodb & Mongoid)
  • hinzugefügt   
  • Die Datei mongoid.yml wurde in der config / with rails-Unterstützung erstellt
  •   
  • Erstellt ein Friend-Modell und einen Benutzercontroller mit typischen CRUD-Routen

Alles funktioniert, außer wenn ich versuche, eine Massenaufgabe zu machen: %Code%

Modell, friend.rb:

%Vor% %Vor%

Gedanken?

    
user2415333 16.06.2013, 17:36
quelle

2 Antworten

26

Ok, ich habe das Problem gefunden.

Zunächst einmal nehme ich an, dass Sie Rails 4 verwenden. Der Grund für diesen Fehler ist, dass attr_protected und attr_accessible aus Rails 4 entfernt und in einem eigenen Edelstein platziert wurden. Rails fördert jetzt ein neues Schutzmodell. Sie können darüber in der README nachlesen. Wenn Sie das alte Verhalten weiterhin verwenden möchten, müssen Sie das Attribut protected_attributes einschließen. Hoffe das hilft.

BEARBEITEN: Ich habe unten noch eine Klarstellung hinzugefügt, da dies ein häufiges Problem bei Benutzern ist, die ein Upgrade auf Schienen 4 durchführen.

Wenn Sie attr_accessible , d. h. die Rails 3-Methode, weiter verwenden möchten, fügen Sie einfach gem protected_attributes zu Ihrer Gemdatei hinzu.

Wenn Sie mit den Rails 4-Wege anfangen wollen, dürfen Sie attr_accessible nicht mehr verwenden. Stattdessen müssen Sie die Attributberechtigungslogik in den Controller verschieben. Hier ist ein Beispiel:

%Vor%     
Max 01.07.2013 16:48
quelle
0

Für alle Leser, die Rails 5 verwenden und herausfinden, dass protected_attributes gem nicht kompatibel ist:

Sie benötigen attr_accessible nicht, da die Massenzuweisung nicht mehr möglich ist Ссылка

    
Stefan 13.10.2017 09:36
quelle

Tags und Links