Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk membangunkan sistem pengundian dalam talian yang mudah menggunakan MySQL dan Ruby on Rails

Bagaimana untuk membangunkan sistem pengundian dalam talian yang mudah menggunakan MySQL dan Ruby on Rails

王林
王林asal
2023-09-21 13:41:201414semak imbas

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

Cara membangunkan sistem pengundian dalam talian yang mudah menggunakan MySQL dan Ruby on Rails

Pengenalan:
Sistem pengundian dalam talian adalah perkara biasa Senario aplikasi, ia membolehkan pengguna mengundi di halaman web dan menjana data statistik berdasarkan keputusan pengundian. Artikel ini akan memperkenalkan cara membangunkan sistem pengundian dalam talian yang mudah menggunakan rangka kerja MySQL dan Ruby on Rails, dan menyediakan contoh kod khusus.

1. Penyediaan projek
Sebelum memulakan pembangunan, anda perlu memastikan bahawa persekitaran berikut telah dipasang dan dikonfigurasikan:

  1. Ruby and the Ruby pada rangka kerja Rails;
  2. MySQL pangkalan data.

2. Buat projek Rails
Mula-mula, buat projek Rails baharu melalui baris arahan:

rails new vote_system

3. Konfigurasikan pangkalan data #🎜 🎜# Buka fail config/database.yml dalam direktori projek dan konfigurasikan maklumat sambungan pangkalan data:

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

Ganti nama_pengguna_anda dan kata laluan_anda dalam kod di atas dengan akaun MySQL dan kata laluan anda.

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的模板引擎语法 72637aecae1027e7d023ac098a170986 来遍历投票项,并显示名称和当前票数。投票按钮通过 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/votes4 Cipta jadual data

Gunakan alat baris arahan Rails untuk menjana model pengundian dan pengawal:

rrreee
Kod di atas akan menjana fail bernama secara automatik. Model vote dan buat jadual data yang sepadan dalam pangkalan data Jadual ini mengandungi dua medan: name menyimpan nama item undian dan count menyimpan setiap Bilangan undian untuk item undian.

#🎜🎜#5 Tulis antara muka pengundian #🎜🎜#Buka fail app/views/votes/index.html.erb dan gantikan kod templat lalai dengan kod berikut: #🎜🎜#rrreee#🎜. 🎜#Above Kod menggunakan sintaks enjin templat Ruby 72637aecae1027e7d023ac098a170986 untuk mengulangi item undian dan memaparkan nama serta kiraan undian semasa. Butang undian dijana melalui kaedah link_to dan menggunakan permintaan HTTP PATCH untuk mengemas kini nombor undian. #🎜🎜##🎜🎜#6 Tulis logik undian #🎜🎜#Buka fail app/controllers/votes_controller.rb dan ubah suai kaedah create dan update seperti berikut : #🎜 🎜#rrreee#🎜🎜#Dalam kod di atas, kaedah create digunakan untuk mencipta item undian baharu dan kaedah kemas kini digunakan untuk mengemas kini nombor undi. Antaranya, logik untuk mengemas kini bilangan undian ialah setiap kali butang "Undi" diklik, medan count bagi item undian yang sepadan ditambah 1. #🎜🎜##🎜🎜#7 Mulakan pelayan #🎜🎜#Lakukan arahan berikut dalam direktori akar projek untuk memulakan pelayan Rails: #🎜🎜#rrreee#🎜🎜#Kemudian buka http://. dalam pelayar localhost:3000/votes untuk mengakses antara muka sistem undian. #🎜🎜##🎜🎜#Kesimpulan: #🎜🎜#Melalui langkah di atas, kami berjaya membangunkan sistem pengundian dalam talian yang mudah menggunakan rangka kerja MySQL dan Ruby on Rails. Pembangun boleh mengembangkan sistem mengikut keperluan sebenar, seperti menambah pengesahan pengguna, menyusun pilihan pengundian dan fungsi lain. Harap artikel ini membantu anda! #🎜🎜#

Atas ialah kandungan terperinci Bagaimana untuk membangunkan sistem pengundian dalam talian yang mudah menggunakan MySQL dan Ruby on Rails. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn