如何使用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其它相關文章!