[Ruby / Rails] Que faire lorsque NoMethodError apparaît lors de l'utilisation d'une méthode destructive comme le filtre!

L'erreur qui s'est produite

J'ai eu un NoMethodError lors de l'utilisation d'une méthode destructive comme filter!.

Je l'ai traité, alors je vais laisser une note. (Si vous faites une erreur, merci de me le dire ...)

Comment reproduire

object_controller.rb


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

Quand j'ai eu un objet en tant que tableau avec tout, je pourrais utiliser une méthode non destructive comme le filtre, mais j'ai essayé de créer un tableau en jouant un objet qui ne correspond pas aux conditions avec une méthode destructive comme le filtre!.

Cependant, comme le dit le premier titre, j'ai jeté un NoMethodError.

Comment faire avec

object_controller.rb


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

La conversion d'un objet en tableau avec to_a ne lève plus une NoMethodError.

Je l'ajouterai si j'en trouve la raison.

Je laisserai une note dessus pour ne pas l'oublier. (Rappel)

S'il y a des gens qui connaissent déjà la raison et qu'il semble que c'est naturel, je serais très heureux s'il y avait un monsieur qui puisse mettre un lien sur quelque chose.

Recommended Posts

[Ruby / Rails] Que faire lorsque NoMethodError apparaît lors de l'utilisation d'une méthode destructive comme le filtre!
Que faire lorsque l'hôte bloqué: "nom d'hôte" apparaît dans Ruby on Rails
Que faire lorsque "call'Hoge.connection 'pour établir une connexion" apparaît sur les rails c
[Rails] Que faire lorsque la vue se réduit lorsqu'un message est affiché avec la méthode des erreurs
Que faire lorsqu'une exception javax.el.PropertyNotWritableException se produit
Que faire lorsque la méthode non définie ʻuser_signed_in? '
Que faire lorsque javax.el.ELException: Pas une expression de méthode valide: s'affiche lorsque l'écran JSF est affiché
[Rails / Peut-être que cela peut être appliqué à d'autres choses? ] Que faire si échec / erreur __send__ (fichier de méthode) rspec ne peut pas conduire un tel fichier apparaît lors de l'exécution de RSpec
Que faire lorsque la méthode n'est pas trouvée dans f: ajax
Que faire lorsque vous ne pouvez pas formater l'objet donné en tant que date dans JSF convertDateTime
[Ruby on Rails] Le carrousel de bootstrap4 est implémenté sous forme de diaporama en utilisant chaque méthode.
[Tutoriel Rails Chapitre 2] Que faire lorsque vous faites une erreur dans le nom de la colonne
Que faire si une erreur d'analyseur SAX se produit lors de l'utilisation de Liferay 7 / DXP sur AWS
Que faire lorsque vous ne pouvez pas appliquer d'opérateurs d'expression à la liaison de méthode
[Rails 6] Que faire lorsqu'une erreur de modèle manquante se produit après l'introduction du haml [Super facile]
[Rails] Que faire lorsque l'erreur Aucune base de données sélectionnée et Base de données inconnue apparaît dans db: migrate
Que faire si une exception UnsupportedCharsetException se produit dans un JRE léger
J'obtiens une erreur de version de Ruby lorsque j'essaye de démarrer Rails.
[Rails] Que faire lorsque les rails ne répondent pas ou ne s'arrêtent pas
Que faire en cas de problème pendant Content Assist
Que faire lorsque vous rencontrez le problème node_modules avec docker-compose
Que faire lorsqu'une exception javax.batch.operations.JobStartException se produit
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
[Rails] Comment passer la validation telle que le mot de passe lors de l'exécution d'une action de mise à jour
Remarques sur la marche à suivre lorsqu'une exception WebView ClassNotFoundException se produit dans JavaFX 12
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
Que faire si la ligne de commande est trop longue apparaît lors de la création d'un projet Gradle dans Intellij IDEA
<f: ajax> Impossible d'attacher <f: ajax> à un non-ClientBehaviorHolder Que faire lorsque vous devenez parent
Que faire lorsque "Aucun emplacement fourni. Impossible de créer l'URI." Apparaît sur CarrierWave
Que faire quand est invalide car il ne commence pas par un "-"
Que faire si l'installation de ffi échoue lors du lancement d'une application dans Rails
[Ubuntu] Que faire lorsque MongoDB ne peut pas être démarré en raison d'une erreur SocketException
Que faire lorsque «Impossible de trouver» dans l’une des sources apparaît dans l’environnement de développement avec Docker × Rails × RSpec
Que faire si vous obtenez une erreur indiquant "Veuillez saisir une valeur valide" lors de l'obtention avec Rails datetime_field
Que faire si le message d'erreur "Impossible de trouver un moteur d'exécution JavaScript" s'affiche lors du démarrage du serveur rails
[Rails] Comment écrire lors de la création d'une sous-requête
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
[Ruby on Rails] Aucune erreur de méthode méthode non définie `devise_for'error resolution
Que faire lors du débogage "Source non trouvée"
Qu'utilisez-vous lors de la conversion en String?
Que faire si IllegalStateException se produit dans PlayFramework
Après avoir installé le gemfile'devise''bootstrap 'avec des rails, que faire lorsque l'url est une erreur
Que faire si vous obtenez une erreur NoClassDefFoundError lorsque vous essayez d'exécuter eclipse sur Java 9
Que faire lorsque l'adresse déjà utilisée est affichée après l'exécution des rails
[Rails] Solution lorsque l'erreur "visite de la méthode non définie" "apparaît lors de l'utilisation de Capybara avec Rspec
Que faire si vous obtenez une erreur (StandardError: Une erreur s'est produite, cette migration et toutes les migrations ultérieures ont été annulées :) dans rails db: migrate
<Installation par points> Que faire si vous ne pouvez pas continuer en raison d'une erreur lors de la création d'un environnement de développement pour l'apprentissage Rails.