Ich habe versucht, die Beschreibung, die für die Entwicklung von Webanwendungen gut ist, mit Schienen zusammenzufassen!
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!
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!
** 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.
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