Maison > base de données > tutoriel mysql > 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

王林
Libérer: 2023-09-21 13:41:20
original
1425 Les gens l'ont consulté

如何使用MySQL和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 :

  1. Framework Ruby et Ruby on Rails ;
  2. 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
Copier après la connexion

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
Copier après la connexion

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_usernameyour_password 替换为你的MySQL账号和密码。

四、创建数据表
使用Rails的命令行工具生成一个投票模型和控制器:

rails generate scaffold Vote name:string count:integer
rails db:migrate
Copier après la connexion

以上代码将自动生成一个名为 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 %>
Copier après la connexion

上述代码使用了Ruby的模板引擎语法 <% %> 来遍历投票项,并显示名称和当前票数。投票按钮通过 link_to 方法生成,并使用HTTP的PATCH请求来更新投票数。

六、编写投票逻辑
打开 app/controllers/votes_controller.rb 文件,修改 createupdate 方法如下:

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
Copier après la connexion

在上述代码中,create 方法用于创建新的投票项,update 方法用于更新投票数。其中,更新投票数的逻辑为每次点击“投票”按钮,对应投票项的 count 字段加1。

七、启动服务器
在项目根目录下执行以下命令启动Rails服务器:

rails server
Copier après la connexion

然后在浏览器中打开 http://localhost:3000/votes

4. Créez une table de données

Utilisez l'outil de ligne de commande Rails pour générer un modèle de vote et un contrôleur :
rrreee

Le code ci-dessus générera automatiquement un modèle nommé 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal