Je voulais intégrer et afficher des vidéos youtube sur des rails, j'ai donc essayé de l'implémenter en me référant à divers articles. Cependant, je ne pouvais pas l'implémenter comme je l'avais envisagé selon l'article de référence. Après cela, j'ai répété des essais et des erreurs et j'ai découvert comment générer l'URL entrée sur l'écran d'édition sans aucun bogue, je vais donc décrire comment l'implémenter.
Les vidéos Youtube sont identifiées par une chaîne de caractères à 11 chiffres. Si vous collez la chaîne de caractères à 11 chiffres dans l'URL pour l'incorporation sur youtube, la vidéo intégrée sera également affichée sur des rails.
https://www.youtube.com/watch?v=0CqFEDzDkIA&t
Identifiez la vidéo avec cette chaîne de caractères → → "0CqFEDzDkIA & t"
Cependant, il y a un gros écueil ici. Comme condition pour que l'URL ci-dessus soit générée, l'URL ci-dessus ne sera générée que lorsque la vidéo youtube commence à 0 seconde </ font>. Si cette condition n'est pas remplie, une URL plus longue sera générée, donc même si vous la créez conformément à Article de référence, la vidéo intégrée sera affichée. Il y aura un bug qui ne sera pas fait.
Si l'URL répond aux critères, elle sera lue correctement dans Article de référence.
** Si vous obtenez l'URL youtube par la méthode suivante, une URL plus longue que le code à 11 caractères pour l'identification vidéo sera générée **
- URL de la vidéo qui a arrêté la lecture de la vidéo --URL de la vidéo lisant la vidéo dans une situation particulière (Exemple: obtenez l'URL de l'écran de lecture de votre vidéo préférée, etc.) </ Font> (Il peut y en avoir d'autres, mais dans tous les cas l'URL sera générée dans le sens le plus long)
Sur la base de ceux-ci, nous expliquerons la configuration de l'implémentation.
Tout d'abord, nous allons créer un exemple d'application qui ne fait que publier des vidéos YouTube.
Fonctionnement du terminal
$ mkdir projects //Préparez votre propre annuaire
$ cd projects
$ mkdir sample_app
$ cd sample_app
$ $ rails new youtubetest -d mysql
Si vous souhaitez spécifier la version, entrez comme suit
rails -5.2.3- new youtubetest -d mysql
$ rails s
Démarrez le serveur. Accédez à http: // localhost: 3000 pour voir si vous avez pu lancer le serveur. Si l'image habituelle apparaît, le démarrage est terminé.
J'écris souvent en Haml, donc je vais vous présenter «gem'haml-rails».
gemfile
gem 'haml-rails'
Après l'installation, veuillez abaisser les rails ** lower </ font> ** et bundle install
.
Décrivez le routage.
routes.rb
Rails.application.routes.draw do
root to: 'products#index'
resources :products, only: [:index, :new, :create,:edit ,:update, :destroy]
end
Créez un contrôleur.
Terminal
$ rails g controller products
Ajoutez ce qui suit au contrôleur de produits.
class ProductsController < ApplicationController
def index
@products = Product.all
end
def new
@product = Product.new
end
def create
product.create(product_params)
redirect_to root_path
end
def destroy
product = Product.find(params[:id])
product.destroy
end
def edit
@product = Product.find(params[:id])
end
def update
product = Product.find(params[:id])
product.update(product_params)
end
private
def product_params
params.require(:product).permit(:name, :youtube_url)
end
end
Créez un modèle.
Terminal
$ rails g model product
Ajoutez ce qui suit au fichier de migration
db/migrate/xxxxxxxxxxxxxx_create_products.rb
class CreatePosts < ActiveRecord::Migration[5.2]
def change
create_table :products do |t|
t.text :name #ajouter à
t.string :youtube_url #ajouter à
t.timestamps
end
end
end
Faisons rails: db: migrate
.
Terminal
$ rails db:migrate
** La préparation est terminée ** ** C'est le processus le plus important! !! ** **
Créez un fichier de vue pour l'écran supérieur. Veuillez saisir la commande suivante.
Terminal
$ touch app/views/products/index.html.haml
$ touch app/views/products/new.html.haml
$ touch app/views/products/edit.html.haml
* Veuillez taper dans l'ordre du haut
Créez un fichier de vue pour l'écran supérieur. Ajoutez le code suivant à ʻindex.html.haml`.
ruby:index.html.haml
.contents
- @products.each do |product|
.content_post
= product.name
.content_post
%iframe{src: "https://www.youtube.com/embed/#{product.youtube_url[32..42]}",allow: "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture", allowfullscreen: "", frameborder: "0", height: "315", width: "560"}
Le code ci-dessous est le code de base du code d'intégration.
https://www.youtube.com/embed/
En ajoutant # {post.youtube_url [32..42]}
après ce code, même les URL générées dans un état irrégulier peuvent être lues normalement.
Explication supplémentaire
%iframe{src: "https://www.youtube.com/embed/#{product.youtube_url[32..42]}", Omis ci-dessous}
#Ajoutez le code ci-dessous
"#{product.youtube_url[32..42]}"
#Obtention d'une chaîne de caractères à 11 chiffres qui identifie la vidéo
Ensuite, créez une vue de l'écran de publication et de l'écran d'édition.
Ajoutez le code suivant à new.html.haml et ʻedit.html.haml
(Vous pouvez utiliser un modèle partiel dans ce processus)
ruby:new.html.haml&edit.html.haml
.new-contents
.new-contents__content
= form_with(model: @product, local: true) do |form|
contents-group
= form.label :name, "Nom"
= form.text_field :name, placeholder: 'name'
contents-group
= form.label :youtube_url, "URL YouTube"
= form.text_field :youtube_url, placeholder: 'youtube_url'
= f.submit 'Publier'
** C'est la fin !! ** En ajoutant une petite description au code d'intégration, vous pouvez intégrer correctement la vidéo dans n'importe quel état de l'URL (limité à youtube), et vous pouvez lire la vidéo.
Ceci conclut l'explication de "Comment intégrer et afficher des vidéos YouTube dans Rails". Je vous serais reconnaissant si vous pouviez signaler des erreurs.
Merci d'avoir regardé jusqu'à la fin.
Recommended Posts