[RUBY] Ceci et celui de la dérivation conditionnelle du développement des rails

Ceci et celui de la dérivation conditionnelle du développement des rails

J'ai essayé de résumer la description qui est bonne pour le développement d'applications Web avec des rails!

Je veux pouvoir éditer / supprimer des messages uniquement par l'affiche!

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!

Je souhaite modifier la description selon que la personne est connectée ou non!

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!

Je lance une erreur nulle lors de la publication d'une image

** 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.

finalement

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

Ceci et celui de la dérivation conditionnelle du développement des rails
[Rails] strftime ceci et cela
Bases du branchement conditionnel et du retour
Ceci et cela du contrôle exclusif
Ceci et cela de Swift Corner Radius
Bases du développement Java ~ Comment écrire un programme (flux et branchement conditionnel) ~
[Rails] Volume qui affiche les favoris et une liste de favoris
Implémentation de calendrier simple de Rails Gem et branchement conditionnel
java (branchement conditionnel et répétition)
Certificat électronique ceci et cela
Encodeur Base64 ceci et cela
J'ai essayé de vérifier ceci et celui de Spring @ Transactional
[Rails] Différences et utilisation de each_with_index et each.with_index
Ceci et cela à propos de Base64 (Java)
Comparaison du développement d'applications WEB avec Rails et Java Servlet + JSP
Création d'une expression conditionnelle mixte de l'instruction Rails if et
Rails Ajout d'une fonction de connexion facile et facile
Ceci et cela de la mise en œuvre du jugement en temps réel des dates en Java
[Rails] Mise en œuvre de la validation qui maintient l'unicité
Ruby on Rails ~ Principes de base de MVC et du routeur ~
Différence entre le membre et la collection de rails routes.rb
[Rails] Classement et pagination par J'aime
Méthode de construction de l'environnement et dépanneur au moment du développement conjoint (rails, docker et github)
Rails et données de forme
[Explication approximative] Comment séparer le fonctionnement de l'environnement de production et de l'environnement de développement avec Rails
Résumé des commandes fréquemment utilisées dans Rails et Docker
[Rails] Implémentation de la fonction glisser-déposer (avec effet)
Implémentation de la fonction Rails CRUD ② (édité et détaillé cette fois)
Ceci et cela pour éditer ini en Java. : inieditor-java
À peu près le flux de développement d'applications Web avec Rails.
Développement d'applications iOS: application Timer (5. Implémentation d'alarme et de vibration)