跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

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

如何使用MySQL和Ruby on Rails开发一个简单的在线投票系统 导语: 在线投票系统是一个常见的应用场景,它可以让用户在网页上进行投票,并根据投票结果生成统计数据。本文将介绍如何使用MySQL和Ruby on Rails框架开发一个简单的在线投票系统,并提供具体的代码示例。 一、项目准备 在开始开发之前,需要确保已经安装并配置好以下环境: Ruby 及 Ruby on Rails框架; 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_username
和
your_password
替换为你的MySQL账号和密码。 四、创建数据表 使用Rails的命令行工具生成一个投票模型和控制器:
rails generate scaffold Vote name:string count:integer rails db:migrate
以上代码将自动生成一个名为
vote
的模型,并在数据库中创建对应的数据表,该表包含两个字段:
name
存储投票项的名称,
count
存储每个投票项的票数。 MySQL(Linux) MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。 下载 五、编写投票界面 打开 app/views/votes/index.html.erb 文件,用以下代码替换默认的模板代码:

在线投票系统

<% @votes.each do |vote| %>

<%= vote.name %>

当前票数:<%= vote.count %>

<%= link_to '投票', vote, method: :patch %>
<% 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
,即可访问投票系统界面。 结束语: 通过以上步骤,我们使用MySQL和Ruby on Rails框架成功开发了一个简单的在线投票系统。开发者可以根据实际需求对系统进行扩展,例如添加用户认证、投票选项的排序等功能。希望本文对你有所帮助!

相关文章