


Comment développer un système de vote en ligne simple en utilisant MySQL et Ruby on Rails
Comment développer un système de vote en ligne simple en utilisant MySQL et Ruby on Rails
Introduction :
Le système de vote en ligne est un scénario d'application courant, qui permet aux utilisateurs de voter sur une page Web et génère des données statistiques basées sur les résultats du vote. . Cet article expliquera comment développer un système de vote en ligne simple à l'aide du framework MySQL et Ruby on Rails, et fournira des exemples de code spécifiques.
1. Préparation du projet
Avant de commencer le développement, vous devez vous assurer que les environnements suivants ont été installés et configurés :
- Framework Ruby et Ruby on Rails ;
- Base de données MySQL.
2. Créez un projet Rails
Tout d'abord, créez un nouveau projet Rails via la ligne de commande :
rails new vote_system
3. Configurez la base de données
Ouvrez le fichier config/database.yml dans le répertoire du projet et configurez les informations de connexion à la base de données :
default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: your_username password: your_password socket: /var/run/mysqld/mysqld.sock development: <<: *default database: vote_system_dev
Remplacez votre_nom d'utilisateur
et votre_mot de passe
dans le code ci-dessus par votre compte MySQL et votre mot de passe. your_username
和 your_password
替换为你的MySQL账号和密码。
四、创建数据表
使用Rails的命令行工具生成一个投票模型和控制器:
rails generate scaffold Vote name:string count:integer rails db:migrate
以上代码将自动生成一个名为 vote
的模型,并在数据库中创建对应的数据表,该表包含两个字段:name
存储投票项的名称,count
存储每个投票项的票数。
五、编写投票界面
打开 app/views/votes/index.html.erb 文件,用以下代码替换默认的模板代码:
<h1>在线投票系统</h1> <% @votes.each do |vote| %> <div> <h2><%= vote.name %></h2> <p>当前票数:<%= vote.count %></p> <%= link_to '投票', vote, method: :patch %> </div> <% end %>
上述代码使用了Ruby的模板引擎语法 <% %>
来遍历投票项,并显示名称和当前票数。投票按钮通过 link_to
方法生成,并使用HTTP的PATCH请求来更新投票数。
六、编写投票逻辑
打开 app/controllers/votes_controller.rb 文件,修改 create
和 update
方法如下:
def create @vote = Vote.new(vote_params) respond_to do |format| if @vote.save format.html { redirect_to votes_url, notice: '投票项创建成功。' } format.json { render :index, status: :created, location: @vote } else format.html { render :new } format.json { render json: @vote.errors, status: :unprocessable_entity } end end end def update @vote = Vote.find(params[:id]) @vote.count += 1 respond_to do |format| if @vote.save format.html { redirect_to votes_url, notice: '投票成功!' } format.json { render :index, status: :ok, location: @vote } else format.html { render :index } format.json { render json: @vote.errors, status: :unprocessable_entity } end end end private def vote_params params.require(:vote).permit(:name, :count) end
在上述代码中,create
方法用于创建新的投票项,update
方法用于更新投票数。其中,更新投票数的逻辑为每次点击“投票”按钮,对应投票项的 count
字段加1。
七、启动服务器
在项目根目录下执行以下命令启动Rails服务器:
rails server
然后在浏览器中打开 http://localhost:3000/votes
Utilisez l'outil de ligne de commande Rails pour générer un modèle de vote et un contrôleur :
rrreee
vote
et créera le modèle correspondant dans le base de données La table de données contient deux champs : name
stocke le nom de l'élément de vote et count
stocke le nombre de votes pour chaque élément de vote. 🎜🎜5. Écrivez l'interface de vote 🎜Ouvrez le fichier app/views/votes/index.html.erb et remplacez le code du modèle par défaut par le code suivant : 🎜rrreee🎜Le code ci-dessus utilise la syntaxe du moteur de modèle de Ruby < % % >
pour parcourir les éléments de vote et afficher les noms et le décompte actuel des votes. Le bouton de vote est généré via la méthode link_to
et utilise la requête HTTP PATCH pour mettre à jour le numéro de vote. 🎜🎜6. Écrivez la logique de vote🎜Ouvrez le fichier app/controllers/votes_controller.rb et modifiez les méthodes create
et update
comme suit : 🎜rrreee🎜Dans le code ci-dessus, La méthode create
est utilisée pour créer de nouveaux éléments de vote, et la méthode update
est utilisée pour mettre à jour le nombre de votes. Parmi eux, la logique de mise à jour du nombre de votes est qu'à chaque fois que l'on clique sur le bouton « Voter », le champ count
de l'élément de vote correspondant est incrémenté de 1. 🎜🎜7. Démarrez le serveur🎜Exécutez la commande suivante dans le répertoire racine du projet pour démarrer le serveur Rails :🎜rrreee🎜Puis ouvrez http://localhost:3000/votes
dans le navigateur pour accéder au interface du système de vote. 🎜🎜Conclusion : 🎜Grâce aux étapes ci-dessus, nous avons développé avec succès un système de vote en ligne simple utilisant le framework MySQL et Ruby on Rails. Les développeurs peuvent étendre le système en fonction des besoins réels, comme l'ajout d'une authentification des utilisateurs, le tri des options de vote et d'autres fonctions. J'espère que cet article vous aidera ! 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

Navicat lui-même ne stocke pas le mot de passe de la base de données et ne peut récupérer que le mot de passe chiffré. Solution: 1. Vérifiez le gestionnaire de mots de passe; 2. Vérifiez la fonction "Remember Motway" de Navicat; 3. Réinitialisez le mot de passe de la base de données; 4. Contactez l'administrateur de la base de données.

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

La copie d'une table dans MySQL nécessite la création de nouvelles tables, l'insertion de données, la définition de clés étrangères, la copie des index, les déclencheurs, les procédures stockées et les fonctions. Les étapes spécifiques incluent: la création d'une nouvelle table avec la même structure. Insérez les données de la table d'origine dans une nouvelle table. Définissez la même contrainte de clé étrangère (si le tableau d'origine en a un). Créer le même index. Créez le même déclencheur (si le tableau d'origine en a un). Créez la même procédure ou fonction stockée (si la table d'origine est utilisée).

NAVICAT pour MARIADB ne peut pas afficher directement le mot de passe de la base de données car le mot de passe est stocké sous forme cryptée. Pour garantir la sécurité de la base de données, il existe trois façons de réinitialiser votre mot de passe: réinitialisez votre mot de passe via Navicat et définissez un mot de passe complexe. Affichez le fichier de configuration (non recommandé, haut risque). Utilisez des outils de ligne de commande système (non recommandés, vous devez être compétent dans les outils de ligne de commande).

Affichez la base de données MySQL avec la commande suivante: Connectez-vous au serveur: MySQL -U Username -P mot de passe Exécuter les bases de données Afficher les bases de données; Commande pour obtenir toutes les bases de données existantes Sélectionnez la base de données: utilisez le nom de la base de données; Tableau de vue: afficher des tables; Afficher la structure de la table: décrire le nom du tableau; Afficher les données: sélectionnez * dans le nom du tableau;

Copier et coller dans MySQL incluent les étapes suivantes: Sélectionnez les données, copiez avec Ctrl C (Windows) ou CMD C (Mac); Cliquez avec le bouton droit à l'emplacement cible, sélectionnez Coller ou utilisez Ctrl V (Windows) ou CMD V (Mac); Les données copiées sont insérées dans l'emplacement cible ou remplacer les données existantes (selon que les données existent déjà à l'emplacement cible).

Étapes pour effectuer SQL dans NAVICAT: Connectez-vous à la base de données. Créez une fenêtre d'éditeur SQL. Écrivez des requêtes ou des scripts SQL. Cliquez sur le bouton Exécuter pour exécuter une requête ou un script. Affichez les résultats (si la requête est exécutée).
