[RUBY] rails d'apprentissage jour 1

Ruby on Rails 5 Guide pratique d'apprentissage rapide chapitre 1

1-1-6 Classes et instances (p.6)

・ Relation entre classe et instance La classe est un parent et les instances sont des enfants, et il existe de nombreuses instances dans la classe. Untitled-2.jpg Pour donner un exemple, cela signifie que M. A (instance), M. B (instance), M. C (instance) et M. D (instance) existent dans la silhouette (classe) des êtres humains.

1-2-5 Différence entre variable locale et variable d'instance

type Fonctionnalité
Variables locales Variables temporaires ad hoc. Ne peut être utilisé que dans la méthode définie
Variable d'instance Variables détenues par l'objet. S'il est défini dans une instance, il peut être utilisé pour toute méthode qui n'existe pas dans cette instance.

Exemple)

class MyClass
 def method_1
  @number=100
 end

 def method_2
  @number  #Autres méthodes(method_1)Défini dans@une autre méthode pour le nombre(method_2)Disponible à
 end
end

1-2-7 Comment utiliser (attr_accessor) pour définir facilement les getters et les setters

Si vous souhaitez utiliser correctement des variables d'instance telles que @name, vous devez faire deux choses:

  1. Définissez une méthode pour attribuer le nom des informations créées à @name afin qu'elles puissent être utilisées.
  2. Définissez une méthode de nom pour afficher @name
class User
 def name=(name) #1.
  @name = name
 end

 def name #2.
  @name 
 end

La méthode qui peut utiliser @name n'est terminée qu'après être venu ici. ... mais c'est ennuyeux.

class User
 attr_accessor :name
end

En utilisant attr_accessor, il a été actualisé à la fois.

1-2-8 Avoir un logement et une adresse e-mail (utilisation spécifique d'attr_accessor)

Divers attributs peuvent être attachés à attr_accessor

class User
 atte_accessor :name, :address, :email
end

Si vous souhaitez utiliser chaque attribut, procédez comme suit

user = User.new
user.name = "Yu Odai"
user.address = "Tokyo"

def profile  #J'ai créé une méthode pour afficher le nom et l'origine
 "#{name}(#{address})"
end

user.profile #Exécution de la méthode de profil qui affiche le nom et l'origine de l'utilisateur ensemble
=> "Yu Odai(Tokyo)"

Vous pouvez saisir et appeler les informations utilisateur en utilisant le nom et l'adresse.

1-3-4-2 sauf s'il se ramifie quand il ne s'applique pas (comment utiliser sauf si)

if exécutera le processus lorsque le résultat de la condition est vrai, mais à moins d'exécuter le processus lorsque le résultat de la condition est faux. (Faites l'inverse de if)

1-3-4-3 postfix si

L'habituel si est attaché à l'arrière. Si etc. ne peut pas être attaché et agit sur une seule ligne

puts 'Bonjour' if true  #Production

puts 'Je vous remercie pour votre travail acharné' if false  #Pas de sortie

Le code ci-dessus sera "Imprimer des mises si le résultat est vrai" Puisque le résultat est vrai, "Bonjour" est sorti.

1-3-6 hachage

Si vous souhaitez obtenir la valeur souhaitée dans un tableau normal, vous devez spécifier le nombre (nombre). Cela devient impossible à mesure que la quantité d'informations dans la séquence augmente. Par conséquent, nous utilisons un hachage et donnons à chaque valeur quelque chose comme un surnom (clé). Ce faisant, si vous entrez un surnom, la valeur qui lui est associée apparaîtra automatiquement.

 jinnkou ={ tokyo: 13636222, kanagawa: 9145572 }
         #{Surnom (clé):Population de Tokyo,Surnom (clé):Population de Kanagawa}

puts jinnkou[:tokyo]
=> 13636222

Mettez: entre [] et mettez le surnom (clé)

1-4-1 initialize Chaque fois que vous exécutez "OO.new" dans Ruby, l'initialisation dans la classe de OO est exécutée. Vous permet de saisir des valeurs qui correspondent aux colonnes du tableau Par exemple, lorsque vous insérez de nouvelles informations dans la table Utilisateur avec le nom, l'adresse, les colonnes d'e-mail Si vous écrivez initialize (nom, adresse, email), vous effectuerez des opérations telles que "le premier entre parenthèses est le nom, le second est l'adresse et le troisième est le mail".

class User #User.Vous pouvez utiliser initialiser quand nouveau
 def initialize(name, address, email)
   @name = name
   @address = address
   @email = email
 end
end
user = User.new("Neiko Oba","Tokyo","nil")
                 # ||       ||      ||
  #initialize(  name   ,address, email)

1-4-2 Restreindre les appels de méthode (privé)

En termes de sécurité, si quelqu'un peut utiliser la méthode, cela causera des problèmes tels que des fuites d'informations personnelles, alors utilisez la méthode privée pour éviter que la méthode ne soit utilisée de l'extérieur.

1-5-2 Commun par module (Mix-in)

Faites des méthodes à petite échelle (un seul processus ou le processus lui-même facile) en un groupe en tant que module afin qu'il puisse être utilisé dans différentes classes.

#Module résumant le prix
module PriceHolder
 def total_price
  price*Tax.rate
 end
end

class Product
 include PriceHolder
 attr_accessor :price
end

class OrderedItem
 include PriceHolder
 attr_accessor :unit_price, :volume

#Prix unitaire HT*quantité
 def price
  unit_price*volume
 end
end

Le processus de multiplication du prix par le taux de taxe à la consommation pour obtenir la valeur de retour est utilisé comme module PriceHolder, et le module PriceHolder est utilisé pour chaque classe. Utilisez include lors de l'utilisation de modules.

1-7-1 garde nul

number ||=10

S'il y a un nombre, nombre est utilisé, sinon nombre est utilisé en remplaçant 10 par nombre.

1-7-2 Opérateur Bocchi &.

Par exemple, si vous avez une table User mais tapez object.name, vous obtiendrez une erreur car il n'y a pas de table d'objets. Cependant, si vous utilisez l'objet opérateur bocchi & .name, nil sera renvoyé comme valeur de retour au lieu d'une erreur s'il n'y a pas de table.

Notation 1-7-3%

ary1 = ['apple', 'banana' ,'orange']
# %Si vous utilisez la notation
ary1 = %w[apple banana orange]

Si vous utilisez la notation%, vous pouvez omettre "" et ainsi de suite.

1-7-4 Extraire uniquement des attributs spécifiques de chaque élément du tableau (méthode map)

class User
 attr_accessor :name, :address
end

user1 = User.new(name:'Neiko Oba', address:'Tokyo')
user2 = User.new(name:'Miyuki Koshiba', address:'Préfecture de Chiba')
user3 = User.new(name:'Yu Odai', address:'Préfecture de Kanagawa')

users = [user1,user2.user3]

À ce stade, si vous voulez un tableau contenant uniquement les noms de chaque utilisateur, utilisez la méthode map.

names = users.map(&:name)
=>["Neiko Oba","Miyuki Koshiba","Yu Odai"]

De cette façon, si vous utilisez le tableau d'origine .map (&: informations souhaitées), vous pouvez créer un tableau contenant uniquement les informations souhaitées.

Autres notes que j'ai apprises

1.require: utilisé lors de la lecture du code source (user.rb dans ce cas)

> require './user.rb'
  1. Délai d'utilisation du retour

La valeur renvoyée lors de l'exécution de la méthode est appelée "valeur de retour". Fondamentalement, lorsqu'une méthode est exécutée, elle donne une valeur de retour, mais elle donne une valeur de retour lorsque toutes les méthodes ont été exécutées. Si vous voulez une valeur de retour au milieu de la méthode, utilisez return pour obtenir la valeur de retour.

Recommended Posts

Rails Learning jour 4
Rails Learning jour 2
rails d'apprentissage jour 1
Rails Learning Jour 1 Partie 2
Programmation apprentissage jour 3
java learning day 2
java learning day 1
Tutoriel Rails Chapitre 3 Apprentissage
[Rails] Didacticiel Apprendre avec les rails
Tutoriel Rails Chapitre 4 Apprentissage
Tutoriel Rails Chapitre 1 Apprentissage
Tutoriel Rails Chapitre 2 Apprentissage
Record d'apprentissage Ruby on rails -2020.10.04
Record d'apprentissage de Ruby on rails -2020.10.05
java learning day 4
Record d'apprentissage Ruby on rails-2020.10.07 ②
Record d'apprentissage Ruby on rails-2020.10.07 ①
Record d'apprentissage de Ruby on rails -2020.10.06
[Rails g. Erreur]
Tutoriel Rails 6e édition Résumé d'apprentissage Chapitre 10
Apprendre Java (0)
Ruby apprentissage 4
Rails Tutorial 6e édition Résumé de l'apprentissage Chapitre 7
Notions de base sur les rails
API Rails
Migration des rails
Tutoriel Rails 6e édition Résumé de l'apprentissage Chapitre 4
[Rails] first_or_initialize
Journée Java 2018
rails tutry
Tutoriel Rails 6e édition Résumé de l'apprentissage Chapitre 9
Tutoriel Rails 6e édition Résumé de l'apprentissage Chapitre 6
À propos des rails 6
Apprentissage des servlets
Ruby apprentissage 3
Fondation Rails
Tutoriel Rails 6e édition Résumé de l'apprentissage Chapitre 5
Mémorandum Rails
rails tutry
tutoriel sur les rails
Sortie d'apprentissage ~ 11/3 ~
Rails Tutorial 6e édition Résumé de l'apprentissage Chapitre 2
Tutoriel Rails Chapitre 0: Apprentissage préliminaire des connaissances de base 5
Ruby apprentissage 2
Apprentissage Maven
[Rails] concevoir
Ruby apprentissage 6
rails tutry
Tutoriel Rails 6e édition Résumé de l'apprentissage Chapitre 3
tutoriel sur les rails
Sortie d'apprentissage
Conseils de rails
méthode des rails
tutoriel sur les rails
Ruby apprentissage 1
Muscle Ruby on Rails Jour 1 ~ Construction de l'environnement ~
Rails Revue 2