如何使用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 存儲每個投票項的票數。
五、編寫投票界面
打開 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,即可訪問投票系統界面。
結束語:
通過以上步驟,我們使用MySQL和Ruby on Rails框架成功開發了一個簡單的在線投票系統。開發者可以根據實際需求對系統進行擴展,例如添加用戶認證、投票選項的排序等功能。希望本文對你有所幫助!
以上就是如何使用MySQL和Ruby on Rails開發一個簡單的在線投票系統的詳細內容,更多請關注www.92cms.cn其它相關文章!






