[RUBY] Dinge, die beim Kombinieren von if-Anweisungen und logischen Operatoren zu beachten sind

Einführung

Beim Kombinieren der if-Anweisung und des logischen Operators waren einige Punkte zu beachten, daher werde ich sie zusammenfassen.

Grundlegende Beschreibung

wenn bedingter Ausdruck
 #Verarbeitung, wenn der bedingte Ausdruck wahr ist
else
 #Verarbeitung, wenn der bedingte Ausdruck falsch ist
end

Logischer Operator

&& → und ||→ oder

Kombination aus if-Anweisung und logischem Operator

wenn bedingter Ausdruck 1&&Bedingter Ausdruck 2
 #Verarbeitung, wenn der bedingte Ausdruck 1 und der bedingte Ausdruck 2 wahr sind
else
 #Verarbeitung, wenn auch nur einer der bedingten Ausdrücke falsch ist
end

Wenn der bedingte Ausdruck 1 im Detail betrachtet wird, wird der Code des bedingten Ausdrucks 2 überhaupt nicht gelesen. Speziell,


<% if user_signed_in? && @message.user.id == current_user.id %>
<% if @message.user.id == current_user.id && user_signed_in? %>

Wenn Sie mit devise die Anzeige zwischen dem angemeldeten und dem nicht angemeldeten Status trennen Wenn Sie angemeldet sind, verursacht keiner der Codes einen Fehler. Wenn Sie jedoch nicht angemeldet sind Der obige Code verursacht keinen Fehler, der folgende Code jedoch.

Der Grund dafür ist, dass "@ message.user.id" und "current_user.id" nur eingegeben werden, wenn sie angemeldet sind, und es überhaupt nicht möglich ist, festzustellen, ob sie mit "==" gleich sind. Wenn Sie in der obigen Formel zum Zeitpunkt von "user_signed_in?" Nicht angemeldet sind, wird "false" zurückgegeben, sodass Sie den Code nach "&&" nicht zur Unterscheidung verwenden müssen.

Recommended Posts

Dinge, die beim Kombinieren von if-Anweisungen und logischen Operatoren zu beachten sind
Dinge, die Sie bei der Verwendung der if-Anweisung beachten sollten
Dinge, die Sie beachten sollten, wenn Sie sich für CRuby entscheiden
Dinge, die zu beachten sind, wenn der Abhängigkeit Krieg hinzugefügt wird
Beachten Sie beim Testen privater Methoden in JUnit
N Dinge, die Sie beim Lesen von "Einführung in den Frühling" und "Einführung in den Frühling" in der Reiwa-Ära beachten sollten
Dinge zu beachten, wenn Sie Jekyll unter Windows installieren und Themen laden! !! Brauche tzinfo !!
Beachten Sie Folgendes, wenn Sie Apache PDFBox® mit AWS Lambda verwenden
Volume, das viele logische Operatoren in der if-Anweisung verwenden möchte
11 Entspricht Vergleichs- und logischen Operatoren
[Java Bronze] 5 Probleme zu beachten
[Kein Komma (,) in der Adresse! ] Dinge, die Sie beachten sollten, wenn Sie sich für eine Prüfung bei Pearson VUE bewerben
[Ruby] Schwierigkeiten beim Refactoring logischer Operatoren (Genauigkeit und Lesbarkeit)
Dinge, die Sie beim Schreiben von Code in Java beachten sollten
So schreiben Sie, wenn Sie Zeilenumbrüche und Ausgaben beibehalten und XSS in Rails vermeiden möchten
[Für Super-Anfänger] Das Mindestwissen, das Sie mit Hashes und Symbolen berücksichtigen möchten
Java if- und switch-Anweisungen
Bei Verwendung von Modulen mit Gradle und IntelliJ können keine Ressourcen abgerufen werden
Vorsichtsmaßnahmen bei der Verwendung von Spring AOP mit Jersery-Ressourcenklassen
[jOOQ] Wie in der WHERE / AND / OR-Klausel WANN FALLEN
Dinge, an die Sie sich erinnern sollten, und Konzepte im Ruby on Rails-Tutorial