如何使用MySQL和Ruby on Rails開發一個簡單的線上投票系統
導語:
線上投票系統是一個常見的應用場景,它可以讓使用者在網頁上進行投票,並根據投票結果產生統計資料。本文將介紹如何使用MySQL和Ruby on Rails框架開發一個簡單的線上投票系統,並提供具體的程式碼範例。
一、專案準備
在開始開發之前,需要確保已經安裝並配置好以下環境:
二、建立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開發一個簡單的線上投票系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!