Geben Sie die Schienenversion 6.0.0 an. Geben Sie nach -d die zu verwendende Datenbank an (in diesem Fall MySQL).
rails _6.0.0_ new birdtweet -d mysql
Einstellungsänderung.
config/database.yml
...
# encoding: utf8mb4
encoding: utf8
...
DB-Erstellung
cd birdtweet
rails db:create
Gemfile bearbeiten Öffnen Sie die Gemfile direkt unter dem Projekt
Gemfile
# gem 'mysql2', '>= 0.4.4'
gem 'mysql2', '>= 0.5.3'
........
(Fazit der Datei)
gem 'pry-rails'
Aktualisieren Sie die Einstellungen im Terminal
bundle update
rails g model bird
Spalte hinzufügen
db/migrate/2020********create_birds.rb
...
create_table :birds do |t|
t.string :name
t.text :pic
t.timestamps
end
...
Aktualisieren Sie Änderungen mit Befehlen!
rails db:migrate
Fügen Sie einige Daten in die Datenbank an der Konsole ein.
rails c
Bird.create(name: "Tsunomedori", pic: "https://cdn.pixabay.com/photo/2020/05/26/13/22/puffins-5223057_1280.jpg ")
Bird.create(name: "Kawasemi", pic: "https://cdn.pixabay.com/photo/2017/02/07/16/47/kingfisher-2046453_1280.jpg ")
exit
rails g controller birds
Es kann Plural sein oder nicht, und es kann verwirrend sein, Nur das Modell ist einzigartig!
Zu route.rb hinzugefügt ↓ Links zu jeder Funktion in index.html.erb hinzugefügt (unerwarteter Index) ↓ Zu bird_controller.rb hinzugefügt ↓ Erstellen Sie die Funktion name.html.erb
Wenn Sie nicht alle Funktionen verwenden möchten, geben Sie nur diejenigen an, die mit der einzigen Option verwendet werden sollen.
config/routes.rb
#Hinter Ressourcen steht der Plural des Modellnamens
resources :birds, only: :index
app/controllers/birds_controller.rb
...
def index
#Speichern Sie Bird-Modelldaten in Instanzvariablen.
@birds = Bird.all
end
...
Erstellen Sie die Datei index.html.erb Zeigen Sie alle Instanzvariablen in der Ansicht mit jeder Methode an.
rb:app/views/birds/index.html.erb
<% @birds.each do |bird| %>
<%= bird.name %>
<div style=
"background-image: url(<%= bird.pic %>);
background-position: center center;
background-size: cover;
width: 300px;
height: 300px;
margin-bottom: 10px;
">
</div>
<%end%>
Es wurde wie folgt angezeigt! !! !!
routes.rb
Rails.application.routes.draw do
#Hinter Ressourcen steht der Plural des Modellnamens
#Wenn es mehrere Aktionen gibt, werde ich sie in Form eines Arrays erstellen
resources :birds, only: [:index, :new]
end
ruby:index.html.erb
<%=link_to 'Neuer Beitrag', new_bird_path, method: :get%>
...
birds_controller.rb
...
def new
#Speichern Sie die Instanziierung des Bird-Modells in einer Instanzvariablen.
@bird = Bird.new
end
...
Erstellen Sie new.html.erb
rb:app/views/birds/new.html.erb
<%#Selbst wenn Sie die URL des Übergangsziels nicht beschreiben, erfolgt der Übergang basierend auf dem in die Instanzvariable eingegebenen Modell.%>
<%=form_with(model: @bird, local: true) do |form| %>
<%= form.text_field :name, placeholder: "Vogelname" %>
<%= form.text_field :pic, placeholder: "Vogel Foto URL" %>
<%= form.submit "Post" %>
<%end%>
http://localhost:3000/birds/new Sie können den Buchungsbildschirm sehen, wenn Sie darauf zugreifen!
Als nächstes folgt die Funktion zum Registrieren der Eingabeinformationen.
routes.rb
Rails.application.routes.draw do
#Hinter Ressourcen steht der Plural des Modellnamens
#Wenn es mehrere Aktionen gibt, werde ich sie in Form eines Arrays erstellen
resources :birds, only: [:index, :new, :create]
end
birds_controller.rb
Die Daten werden in Form eines Hashs aus dem Formular gesendet.
Es ist gefährlich, alle Daten zu erhalten! </ b>
Obwohl Sie nur den Namen und die URL des Fotos benötigen, können Sie den Schlüssel der Anmeldeinformationen in böswilliger Absicht hinzufügen und die Anmeldeinformationen einer anderen Person ohne Erlaubnis ändern und übernehmen.
Verwenden Sie daher den Parameter strong.
Unterhalb der Zeile, die privat beschreibt, handelt es sich um eine Methode, die nicht aus anderen Dateien aufgerufen werden kann. Der Vorteil ist, dass Sie weniger Dateien sehen können, wenn Sie mehr Methoden haben.
birds_controller.rb
...
def create
#Vogel definiert unter privat_Empfängt und speichert die von param angegebenen Parameter.
Bird.create(bird_param)
end
private
def bird_param
# params.require(:Modellname).permit(:Spaltenname,:Spaltenname,......)
params.require(:bird).permit(:name, :pic)
end
...
create.html.erb create
rb:app/views/birds/create.html.erb
<h3>Posting abgeschlossen!</h3>
<a href="/birds">Auflisten</a>
Wenn Sie es so lassen, wie es ist, können Sie sich registrieren, ohne etwas einzugeben. Daher werde ich eine Beschreibung für die Validierungsprüfung schreiben.
app/models/birds.rb
class Bird < ApplicationRecord
#Schreiben Sie den Spaltennamen, den Sie eingeben müssen.
validates :name, presence: true
validates :pic, presence: true
end
Sie können die Daten ab sofort nicht mehr registrieren! !!
routes.rb
...
resources :birds, only: [:index, :new, :create, :destroy]
...
Verwenden Sie zuerst den Befehl, um den Link zur Löschfunktion zu finden
rails routes
Wird besorgt. Dann wird die folgende Ausgabe ausgegeben. Wenn Sie dem Präfixwert "_path" hinzufügen, wird die im URI beschriebene URL ausgegeben.
Dieses Mal wird es gelöscht. Achten Sie also auf die Zeile DELETE in Verb. Das Präfix ist "Vogel", daher können Sie es auf "Vogelpfad" setzen. Die Methode ist "DELETE" in "Verb", Sie können also einfach "delete" sagen. Geben Sie danach auch den Ausweis weiter!
index.html.erb
...
<%= bird.name %><%=link_to "Löschen", bird_path(bird.id), method: :delete%>
...
Der Link wird angezeigt.
bird_controller.rb
...
def destroy
#Dieses Mal werde ich die extrahierten Daten nirgendwo hin senden, also@Nicht anhängen.
bird = Bird.find(params[:id])
bird.destroy
end
...
destroy.html.erb
<a href="/birds">Listenbildschirm</a>
Papageientaucher wurde richtig entfernt!
Recommended Posts