如何使用MySQL和Ruby on Rails开发一个简单的在线投票系统

如何使用MySQL和Ruby on Rails开发一个简单的在线投票系统

如何使用MySQL和Ruby on Rails开发一个简单的在线投票系统

导语:
在线投票系统是一个常见的应用场景,它可以让用户在网页上进行投票,并根据投票结果生成统计数据。本文将介绍如何使用MySQL和Ruby on Rails框架开发一个简单的在线投票系统,并提供具体的代码示例。

一、项目准备
在开始开发之前,需要确保已经安装并配置好以下环境:

  1. Ruby 及 Ruby on Rails框架;
  2. MySQL 数据库。

二、创建Rails工程
首先,通过命令行创建一个新的Rails工程:

rails new vote_system

三、配置数据库
打开项目目录中的 config/database.yml 文件,配置数据库连接信息:

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

将上述代码中的 your_usernameyour_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 文件,修改 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

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

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

rails server

然后在浏览器中打开 http://localhost:3000/votes,即可访问投票系统界面。

结束语:
通过以上步骤,我们使用MySQL和Ruby on Rails框架成功开发了一个简单的在线投票系统。开发者可以根据实际需求对系统进行扩展,例如添加用户认证、投票选项的排序等功能。希望本文对你有所帮助!

原文来自:www.php.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容