J'ai essayé de résumer la description qui est bonne pour le développement d'applications Web avec des rails!
Lors de la création d'une application comme SNS avec rails, tout le monde peut modifier le message Vous ne pouvez pas le supprimer! La branche conditionnelle ci-dessous est pratique dans un tel cas!
** On suppose que l'appareil (Gem) est installé **
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 %> #Postscript
<%= link_to "Éditer", edit_post_path(@post.id) %>
<%= link_to "effacer", post_path, method: :delete %>
<% end %># Addenda
De cette façon, la partie édition / suppression est un branchement conditionnel ** Si l'ID de l'affiche correspond à l'ID d'utilisateur connecté ** Ce serait bien de le mettre avec <% if @ post.user_id == current_user.id%>, qui a la signification de!
N'est-ce pas le cas, par exemple? Avant de vous connecter, ajoutez un nouveau lien d'inscription / connexion dans l'en-tête. Une fois connecté, accédez à Ma page ou lien de déconnexion Je veux l'implémenter! La branche conditionnelle ci-dessous est pratique dans un tel cas!
** On suppose que l'appareil (Gem) est installé **
** Cette fois, j'utilise la barre de navigation avec bootstrap ** Cliquez ici pour bootstrap
layout/application.html.erb
<% if user_signed_in? %>
<nav class="navbar fixed-top navbar-expand-lg navbar-light">
<a class="navbar-brand" href="/">domicile</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;">Publier<span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="/users/<%= current_user.id %>">Ma page</a>
</li>
<li class="nav-item" >
<%= link_to 'Se déconnecter', destroy_user_session_path, data: { confirm: "Se déconnecterしますか?" }, 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">Haut</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;">s'inscrire</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/users/sign_in" style="color: white;">S'identifier</a>
</li>
</ul>
</div>
</nav>
<% end %>
** La partie <% if user_signed_in?%> Est importante! ** ** Ceci est une branche conditionnelle qui dit "si l'utilisateur est connecté"! Combinez avec <% else%> (sinon → "si vous ne vous êtes pas connecté") pour encore plus de puissance!
** Supposons que vous ayez implémenté la publication d'images à l'aide de cloudinary
Cette fois, j'utilise la publication d'images comme exemple, mais que dois-je faire avec nil? .. Vous pouvez l'utiliser dans ce cas!
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 %>
** La partie <% record.column.present?%> Est importante! ** ** Cela en fait une branche conditionnelle qui sera affichée si elle existe au lieu de nil!
[Supplément] Rendez la taille de l'image carrée et utilisez le bootstrap pour arrondir l'image comme une image de profil Twitter.
Jusqu'à présent, j'ai décrit trois branches conditionnelles utilisées personnellement! Veuillez signaler toute erreur!
Les instructions conditionnelles de branchement (if) sont courantes et importantes dans la programmation! Bougeons réellement vos mains et comprenons!
Recommended Posts