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 :
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!