[Ruby / Rails] Was tun, wenn NoMethodError angezeigt wird, wenn eine destruktive Methode wie Filter verwendet wird?

Der aufgetretene Fehler

Ich habe einen NoMethodError erhalten, wenn ich eine destruktive Methode wie filter!

Ich habe mich darum gekümmert, also werde ich eine Nachricht hinterlassen. (Wenn Sie einen Fehler machen, sagen Sie es mir bitte ...)

Wie zu reproduzieren

object_controller.rb


def index
  @object = Object.all
  @object.filter! do |o|
    o.id != 1
  end
end

Wenn ich ein Objekt als Array mit allen bekam, konnte ich eine zerstörungsfreie Methode wie filter verwenden, aber ich habe versucht, ein Array zu erstellen, indem ich ein Objekt abgespielt habe, das nicht den Bedingungen mit einer destruktiven Methode wie filter entspricht!

Wie die erste Überschrift sagt, habe ich jedoch einen NoMethodError geworfen.

Wie man damit umgeht

object_controller.rb


def index
  @object = Object.all
  @object.to_a.filter! do |o|
    o.id != 1
  end
end

Das Konvertieren eines Objekts in ein Array mit to_a löst keinen NoMethodError mehr aus.

Ich werde es hinzufügen, wenn ich den Grund herausfinde.

Ich werde eine Notiz darauf hinterlassen, damit ich sie nicht vergesse. (Erinnerung)

Wenn es Leute gibt, die den Grund bereits kennen und es scheint, dass es natürlich ist, würde ich mich sehr freuen, wenn es einen Gentleman gibt, der einen Link zu etwas setzen kann.

Recommended Posts

[Ruby / Rails] Was tun, wenn NoMethodError angezeigt wird, wenn eine destruktive Methode wie Filter verwendet wird?
Was tun, wenn blockierter Host: "Hostname" in Ruby on Rails angezeigt wird
Was ist zu tun, wenn auf den Schienen cHoge.connection aufruft, um eine Verbindung herzustellen? C.
[Schienen] Was tun, wenn die Ansicht zusammenbricht, wenn eine Nachricht mit der Fehlermethode angezeigt wird?
Was tun, wenn eine javax.el.PropertyNotWritableException auftritt?
undefinierte Methode Was tun, wenn Sie "user_signed_in" erhalten?
Was tun, wenn javax.el.ELException: Kein gültiger Methodenausdruck: wird angezeigt, wenn der JSF-Bildschirm angezeigt wird
[Rails / Vielleicht kann es auf andere Dinge angewendet werden? ] Was tun, wenn Fehler / Fehler __send__ (Methodendatei) rspec nicht ausgeführt werden kann? Eine solche Datei wird beim Ausführen von RSpec angezeigt
Was tun, wenn die Methode in f: ajax nicht gefunden wurde?
Was ist zu tun, wenn ein bestimmtes Objekt in JSF convertDateTime nicht als Datum formatiert werden kann?
[Ruby on Rails] Das Karussell von bootstrap4 wird mit jeder Methode als Diashow implementiert.
[Rails Tutorial Kapitel 2] Was tun, wenn Sie einen Fehlern im Spaltennamen machen?
Was tun, wenn bei Verwendung von Liferay 7 / DXP unter AWS ein SAX-Parser-Fehler auftritt?
Was ist zu tun, wenn Ausdrucksoperatoren nicht auf die Methodenbindung angewendet werden können?
[Rails 6] Was tun, wenn nach der Einführung von haml ein fehlender Vorlagenfehler auftritt? [Super easy]
[Rails] Was tun, wenn der Fehler Keine Datenbank ausgewählt und Unbekannte Datenbank in db: migrate angezeigt wird?
Was tun, wenn in einer Lightweight-JRE eine UnsupportedCharsetException auftritt?
Ich erhalte einen Ruby-Versionsfehler, wenn ich versuche, Rails zu starten.
[Schienen] Was tun, wenn Schienen nicht reagieren oder nicht anhalten?
Was tun bei Problem während der Inhaltsunterstützung?
Was tun, wenn Sie mit Docker-Compose auf das Problem node_modules stoßen?
Was tun, wenn eine javax.batch.operations.JobStartException auftritt?
So erstellen Sie eine Abfrage mithilfe von Variablen in GraphQL [Verwenden von Ruby on Rails]
[Rails] So übergeben Sie eine Validierung wie ein Kennwort, wenn Sie eine Aktualisierungsaktion ausführen
Hinweise zur Vorgehensweise beim Auftreten einer WebView ClassNotFoundException in JavaFX 12
Was tun, wenn die Meldung "Ein Server läuft bereits" angezeigt wird. Fehler beim Versuch, den Rails-Server zu starten
Was tun, wenn die Befehlszeile zu lang ist? Wird beim Erstellen eines Gradle-Projekts in Intellij IDEA angezeigt
<f: ajax> <f: ajax> kann nicht an Nicht-ClientBehaviorHolder angehängt werden. Was tun, wenn Sie Eltern werden?
Was ist zu tun, wenn "Kein Speicherort angegeben. URI kann nicht erstellt werden?" Wird auf CarrierWave angezeigt
Was zu tun ist, wenn es ungültig ist, weil es nicht mit einem '-' beginnt
Was tun, wenn die ffi-Installation beim Starten einer Anwendung in Rails fehlschlägt?
[Ubuntu] Was tun, wenn MongoDB aufgrund eines SocketException-Fehlers nicht gestartet werden kann?
Was ist zu tun, wenn in einer der Quellen in der Entwicklungsumgebung mit Docker × Rails × RSpec "Nicht gefunden" angezeigt wird?
Was tun, wenn beim Abrufen von Rails datetime_field die Fehlermeldung "Bitte geben Sie einen gültigen Wert ein" angezeigt wird?
Was tun, wenn die Fehlermeldung "JavaScript-Laufzeit konnte nicht gefunden werden" angezeigt wird? Beim Starten des Rails-Servers
[Rails] Wie schreibe ich, wenn ich eine Unterabfrage mache?
[Rails] So erstellen Sie ein Diagramm mit lazy_high_charts
[Ruby on Rails] Kein Methodenfehler undefinierte Methode `devise_for'error Auflösung
Was tun beim Debuggen von "Quelle nicht gefunden"?
Was verwenden Sie beim Konvertieren in String?
Was tun, wenn in PlayFramework eine IllegalStateException auftritt?
Was ist nach der Installation von 'devise' 'bootstrap' von gemfile with Rails zu tun, wenn url ein Fehler ist?
Was tun, wenn beim Versuch, Eclipse unter Java 9 auszuführen, ein NoClassDefFoundError angezeigt wird?
Was tun, wenn die bereits verwendete Adresse nach dem Ausführen der Schienen angezeigt wird?
[Rails] Lösung, wenn bei Verwendung von Capybara mit Rspec der Fehler "undefined method` visit '" angezeigt wird
Was tun, wenn ein Fehler auftritt (StandardError: Ein Fehler ist aufgetreten, diese und alle späteren Migrationen wurden abgebrochen :) in Rails db: migrate
<Punktinstallation> Was tun, wenn Sie aufgrund eines Fehlers beim Erstellen einer Entwicklungsumgebung für das Rails-Lernen nicht fortfahren können?