[RUBY] Dies und das der bedingten Verzweigung der Schienenentwicklung

Dies und das der bedingten Verzweigung der Schienenentwicklung

Ich habe versucht, die Beschreibung, die für die Entwicklung von Webanwendungen gut ist, mit Schienen zusammenzufassen!

Ich möchte Beiträge nur über das Poster bearbeiten / löschen können!

Wenn Sie eine Anwendung wie SNS mit Schienen erstellen, kann jeder den Beitrag bearbeiten Sie können es nicht löschen! Der unten stehende bedingte Zweig ist in einem solchen Fall praktisch!

** Es wird davon ausgegangen, dass devise (Gem) installiert ist **

post.rb


  belongs_to :user

user.rb


  has_many :posts

route.rb


  resources :post, only: [:show]

post_controller.rb


  def show
      @film = Post.find(params[:id])
  end

show.html.erb


  <% if @post.user_id == current_user.id %> #Nachtrag
    <%= link_to "Bearbeiten", edit_post_path(@post.id) %>
    <%= link_to "löschen", post_path, method: :delete %>
  <% end %># Nachtrag

Auf diese Weise ist der Teil zum Bearbeiten / Löschen eine bedingte Verzweigung ** Wenn die ID des Posters mit der angemeldeten Benutzer-ID übereinstimmt ** Es ist eine gute Idee, es mit <% if @ post.user_id == current_user.id%> einzuschließen, was die Bedeutung von hat!

Ich möchte die Beschreibung ändern, je nachdem, ob die Person angemeldet ist oder nicht!

Ist das zum Beispiel nicht der Fall? Fügen Sie vor dem Anmelden einen neuen Registrierungs- / Anmeldelink in die Kopfzeile ein. Gehen Sie nach dem Anmelden zu Meine Seite oder zum Abmelden Ich möchte es implementieren! Der unten stehende bedingte Zweig ist in einem solchen Fall praktisch!

** Es wird davon ausgegangen, dass devise (Gem) installiert ist **

** Dieses Mal benutze ich die Navigationsleiste mit Bootstrap ** Klicken Sie hier für den Bootstrap

layout/application.html.erb


  <% if user_signed_in? %>
      <nav class="navbar fixed-top navbar-expand-lg navbar-light">
        <a class="navbar-brand" href="/">Zuhause</a>
        <div class="collapse navbar-collapse" id="navbarSupportedContent">
          <ul class="navbar-nav mr-auto">
            <li class="nav-item">
              <a class="nav-link" href="/post/new" style="color: white;">Post<span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="/users/<%= current_user.id %>">Meine Seite</a>
            </li>
            <li class="nav-item" >
              <%= link_to 'Ausloggen', destroy_user_session_path, data: { confirm: "Ausloggenしますか?" }, method: :delete, class:"nav-link"%>
            </li>
          </ul>
        </div>
      </nav>
  <% else %>
      <nav class="navbar fixed-top navbar-expand-lg navbar-light">
        <a class="navbar-brand" href="/home">oben</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarSupportedContent">
          <ul class="navbar-nav mr-auto">
            <li class="nav-item">
              <a class="nav-link" href="/users/sign_up" style="color: white;">Anmelden</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="/users/sign_in" style="color: white;">Einloggen</a>
            </li>
          </ul>
        </div>
      </nav>
  <% end %>

** Der Teil <% if user_signed_in?%> Ist wichtig! ** ** ** Dies ist ein bedingter Zweig, der sagt "wenn der Benutzer angemeldet ist"! Kombinieren Sie mit <% else%> (ansonsten → "wenn Sie sich nicht angemeldet haben") für noch mehr Leistung!

Ich gebe beim Posten eines Bildes keinen Fehler aus

** Angenommen, Sie haben das Posten von Bildern mithilfe von Cloudinary implementiert

Dieses Mal verwende ich das Posten von Bildern als Beispiel, aber was soll ich mit Null tun? .. Sie können dies in diesem Fall verwenden!

db/migrate/OOOOOOOOOOOOOO_add_image_to_posts.rb


  def change
    add_column :posts, :image, :string
  end

post_controller.rb


  def show
      @film = Post.find(params[:id])
  end

show.html.erb


  <% if @post.image.present? %>
      <%= image_tag @post.image_url, :size =>'150x150', class: "img_fluid rounded-circle" %>
   <% end %>

** Der Teil <% record.column.present?%> Ist wichtig! ** ** ** Dies macht es zu einem bedingten Zweig, der angezeigt wird, wenn er anstelle von Null vorhanden ist!

[Ergänzung] Machen Sie die Bildgröße quadratisch und runden Sie das Bild mit Bootstrap wie ein Twitter-Profilbild ab.

Schließlich

Bisher habe ich drei persönlich verwendete bedingte Zweige beschrieben! Bitte weisen Sie auf Fehler hin!

Bedingte Verzweigungsanweisungen (if) sind in der Programmierung häufig und wichtig! Lassen Sie uns tatsächlich Ihre Hände bewegen und verstehen!

Recommended Posts

Dies und das der bedingten Verzweigung der Schienenentwicklung
[Rails] strftime dies und das
Grundlagen der bedingten Verzweigung und Rückkehr
Dies und das der ausschließlichen Kontrolle
Dies und das von Swift Corner Radius
Grundlagen der Java-Entwicklung ~ So schreiben Sie ein Programm (Ablauf und bedingte Verzweigung) ~
Kalenderimplementierung und bedingte Verzweigung im einfachen Kalender von Rails Gem
Java (bedingte Verzweigung und Wiederholung)
Elektronisches Zertifikat dies und das
Base64 Encoder dies und das
Ich habe versucht, dies und das von Spring @ Transactional zu überprüfen
[Rails] Unterschiede und Verwendung von each_with_index und each.with_index
Dies und das über Base64 (Java)
Vergleich der WEB-Anwendungsentwicklung mit Rails und Java Servlet + JSP
Erstellen eines gemischten bedingten Ausdrucks von Rails if-Anweisung und sofern nicht
Schienen Hinzufügen einer einfachen Anmeldefunktion
Dies und das der Implementierung der zeitlichen Beurteilung von Daten in Java
[Rails] Implementierung einer Validierung, die die Eindeutigkeit beibehält
Ruby on Rails ~ Grundlagen von MVC und Router ~
Unterschied zwischen Mitglied und Sammlung von Schienen route.rb
[Rails] Rangfolge und Paginierung in der Reihenfolge der Likes
Umweltbauweise und Fehlerbehebung zum Zeitpunkt der gemeinsamen Entwicklung (Schienen, Docker und Github)
Schienen und Formulardaten
[Grobe Erklärung] So trennen Sie den Betrieb der Produktionsumgebung und der Entwicklungsumgebung mit Rails
Zusammenfassung der häufig verwendeten Befehle in Rails und Docker
[Rails] Implementierung der Drag & Drop-Funktion (mit Wirkung)
Implementierung der Rails CRUD-Funktion ② (diesmal bearbeitet und detailliert)
Dies und das zum Bearbeiten von ini in Java. : inieditor-java
Etwa der Ablauf der Entwicklung von Webanwendungen mit Rails.
iOS App Entwicklung: Timer App (5. Implementierung von Alarm und Vibration)