Rumah pangkalan data tutorial mysql Bagaimana untuk membangunkan sistem soal selidik dalam talian yang mudah menggunakan MySQL dan Ruby on Rails

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

Sep 21, 2023 am 10:49 AM
mysql ruby on rails Soal selidik dalam talian

如何使用MySQL和Ruby on Rails开发一个简单的在线问卷调查系统

Cara menggunakan MySQL dan Ruby on Rails untuk membangunkan sistem soal selidik dalam talian yang mudah

Pengenalan:
Dengan kemunculan era digital, soal selidik telah menjadi cara penting untuk mendapatkan maklumat maklum balas pengguna dan penyelidikan pasaran. Artikel ini akan memperkenalkan cara menggunakan pangkalan data MySQL dan rangka kerja Ruby on Rails untuk membangunkan sistem soal selidik dalam talian yang mudah. Melalui kajian artikel ini, pembaca akan belajar cara mereka bentuk model pangkalan data, mencipta dan memindahkan jadual pangkalan data, menyediakan persatuan data dan cara menggunakan Ruby on Rails untuk mencipta, mengisi dan mengumpul statistik pada soal selidik.

1. Reka bentuk pangkalan data
Sebelum bermula, anda perlu mereka bentuk model pangkalan data terlebih dahulu. Artikel ini akan mereka bentuk tiga jadual pangkalan data: Soal Selidik, Soalan dan Jawapan. Antaranya, jadual Soal Selidik digunakan untuk menyimpan maklumat asas soal selidik, jadual Soalan digunakan untuk menyimpan maklumat soalan, dan jadual Jawapan digunakan untuk menyimpan jawapan yang diisi oleh pengguna.

# 创建Questionnaires表
rails generate model Questionnaire title:string description:text
# 创建Questions表
rails generate model Question content:text questionnaire:references
# 创建Answers表
rails generate model Answer content:text question:references
Salin selepas log masuk

Selepas menjana fail pemindahan pangkalan data, anda perlu menentukan struktur jadual dalam fail migrasi. Buka setiap fail migrasi dan editnya untuk menambah lajur dan perhubungan yang sepadan.

# 这是Questionnaires表的迁移文件
class CreateQuestionnaires < ActiveRecord::Migration[5.2]
  def change
    create_table :questionnaires do |t|
      t.string :title
      t.text :description

      t.timestamps
    end
  end
end

# 这是Questions表的迁移文件
class CreateQuestions < ActiveRecord::Migration[5.2]
  def change
    create_table :questions do |t|
      t.text :content
      t.references :questionnaire, foreign_key: true

      t.timestamps
    end
  end
end

# 这是Answers表的迁移文件
class CreateAnswers < ActiveRecord::Migration[5.2]
  def change
    create_table :answers do |t|
      t.text :content
      t.references :question, foreign_key: true

      t.timestamps
    end
  end
end
Salin selepas log masuk

Pindahkan jadual pangkalan data

rails db:migrate
Salin selepas log masuk

2. Buat soal selidik
Sebelum membuat soal selidik, anda perlu mencipta model dan pengawal yang sepadan dalam Ruby on Rails. Jalankan arahan berikut:

# 创建Questionnaire模型
rails generate model Questionnaire
# 创建Questionnaire控制器
rails generate controller Questionnaires
Salin selepas log masuk

Edit kod dalam pengawal seperti berikut:

class QuestionnairesController < ApplicationController
  def index
    @questionnaires = Questionnaire.all
  end

  def show
    @questionnaire = Questionnaire.find(params[:id])
  end

  def new
    @questionnaire = Questionnaire.new
  end

  def create
    @questionnaire = Questionnaire.new(questionnaire_params)
    if @questionnaire.save
      redirect_to @questionnaire, notice: '问卷创建成功!'
    else
      render :new
    end
  end

  # ...

  private

  def questionnaire_params
    params.require(:questionnaire).permit(:title, :description)
  end
end
Salin selepas log masuk

Dalam fail paparan, mula-mula buat soal selidik baharu:

# app/views/questionnaires/new.html.erb
<%= form_with model: @questionnaire, url: questionnaires_path, local: true do |form| %>
  <%= form.label :title %>
  <%= form.text_field :title %>

  <%= form.label :description %>
  <%= form.text_area :description %>

  <%= form.submit '创建问卷' %>
<% end %>
Salin selepas log masuk

Kemudian, buat laluan yang sepadan dalam fail penghalaan:

# config/routes.rb
Rails.application.routes.draw do
  resources :questionnaires
end
Salin selepas log masuk

3. Cipta Soalan
sama seperti membuat soal selidik, anda perlu mencipta model Soalan dan pengawal Soalan.

# 创建Question模型
rails generate model Question
# 创建Questions控制器
rails generate controller Questions
Salin selepas log masuk

Kod dalam pengawal edit adalah seperti berikut:

class QuestionsController < ApplicationController
  def new
    @question = Question.new
  end

  def create
    @question = Question.new(question_params)
    if @question.save
      redirect_to @question.questionnaire, notice: '问题创建成功!'
    else
      render :new
    end
  end

  # ...

  private

  def question_params
    params.require(:question).permit(:content, :questionnaire_id)
  end
end
Salin selepas log masuk

Dalam fail paparan, buat soalan baharu:

# app/views/questions/new.html.erb
<%= form_with model: @question, url: questions_path, local: true do |form| %>
  <%= form.label :content %>
  <%= form.text_area :content %>

  <%= form.hidden_field :questionnaire_id, value: @question.questionnaire.id %>

  <%= form.submit '创建问题' %>
<% end %>
Salin selepas log masuk

Sehubungan itu, tambahkan laluan yang sepadan dalam fail penghalaan:

# config/routes.rb
Rails.application.routes.draw do
  resources :questionnaires do
    resources :questions
  end
end
Salin selepas log masuk

4. Paparan dan pengisian soal selidik Pada halaman paparan soal selidik, anda boleh menyenaraikan semua soalan soal selidik dan menyediakan borang untuk mengisi jawapan. Edit pengawal Soal Selidik:

class QuestionnairesController < ApplicationController
  def show
    @questionnaire = Questionnaire.find(params[:id])
  end

  # ...
end
Salin selepas log masuk

Dalam fail paparan, paparkan soalan soal selidik dan sediakan borang untuk mengisi jawapan:

# app/views/questionnaires/show.html.erb
<h1><%= @questionnaire.title %></h1>
<p><%= @questionnaire.description %></p>

<% @questionnaire.questions.each do |question| %>
  <h3><%= question.content %></h3>
  <%= form_with model: Answer.new(question: question), url: answers_path, local: true do |form| %>
    <%= form.hidden_field :question_id, value: question.id %>

    <%= form.text_area :content %>

    <%= form.submit '提交答案' %>
  <% end %>
<% end %>
Salin selepas log masuk

Dalam pengawal Jawapan, cipta kaedah untuk menyimpan jawapan:

class AnswersController < ApplicationController
  def create
    @answer = Answer.new(answer_params)
    if @answer.save
      redirect_to @answer.question.questionnaire, notice: '答案提交成功!'
    else
      render :new
    end
  end

  # ...

  private

  def answer_params
    params.require(:answer).permit(:content, :question_id)
  end
end
Salin selepas log masuk

Tambahkan laluan yang sepadan dalam fail penghalaan :

# config/routes.rb
Rails.application.routes.draw do
  resources :questionnaires do
    resources :questions
  end
  resources :answers
end
Salin selepas log masuk

5. Statistik soal selidik

Untuk melaksanakan fungsi statistik soal selidik, anda perlu menambah kod berikut dalam pengawal Soal Selidik:

class QuestionnairesController < ApplicationController
  def statistics
    @questionnaire = Questionnaire.find(params[:id])
  end

  # ...
end
Salin selepas log masuk

Kemudian, cipta laluan yang sepadan dalam fail penghalaan:

# config/routes.rb
Rails.application.routes.draw do
  resources :questionnaires do
    resources :questions
    member do
      get 'statistics'
    end
  end
  resources :answers
end
Salin selepas log masuk

Seterusnya, paparkannya dalam fail paparan Statistik jawapan:

# app/views/questionnaires/statistics.html.erb
<h1><%= @questionnaire.title %></h1>
<p><%= @questionnaire.description %></p>

<% @questionnaire.questions.each do |question| %>
  <h3><%= question.content %></h3>
  <% question.answers.group(:content).count.each do |answer, count| %>
    <p><%= answer %>: <%= count %> 人选择</p>
  <% end %>
<% end %>
Salin selepas log masuk
Pada ketika ini, pembangunan sistem soal selidik dalam talian yang mudah selesai. Melalui kajian artikel ini, pembaca akan mempelajari cara menggunakan pangkalan data MySQL dan rangka kerja Ruby on Rails untuk mereka bentuk model pangkalan data sistem tinjauan soal selidik, dan melaksanakan fungsi penciptaan, pengisian dan statistik soal selidik.

Ringkasan:

Tinjauan soal selidik memudahkan kami mendapatkan maklum balas pengguna dan data penyelidikan pasaran. Menggunakan MySQL dan Ruby on Rails untuk pembangunan, anda boleh membina sistem soal selidik dalam talian yang mudah dengan cepat. Dengan mengkaji artikel ini, pembaca boleh belajar cara mereka bentuk model pangkalan data, mencipta dan memindahkan jadual pangkalan data, dan cara menggunakan Ruby on Rails untuk mencipta, mengisi dan mengumpul statistik pada soal selidik. Saya berharap artikel ini dapat membantu pembaca, dan saya juga berharap pembaca dapat terus mengetahui dan mengembangkan fungsi sistem soal selidik.

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

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MySQL: Kemudahan Pengurusan Data untuk Pemula MySQL: Kemudahan Pengurusan Data untuk Pemula Apr 09, 2025 am 12:07 AM

MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.

Mysql: Konsep mudah untuk pembelajaran mudah Mysql: Konsep mudah untuk pembelajaran mudah Apr 10, 2025 am 09:29 AM

MySQL adalah sistem pengurusan pangkalan data sumber terbuka. 1) Buat Pangkalan Data dan Jadual: Gunakan perintah Createdatabase dan Createtable. 2) Operasi Asas: Masukkan, Kemas kini, Padam dan Pilih. 3) Operasi lanjutan: Sertai, subquery dan pemprosesan transaksi. 4) Kemahiran Debugging: Semak sintaks, jenis data dan keizinan. 5) Cadangan Pengoptimuman: Gunakan indeks, elakkan pilih* dan gunakan transaksi.

Cara membuka phpmyadmin Cara membuka phpmyadmin Apr 10, 2025 pm 10:51 PM

Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

Cara Membuat Premium Navicat Cara Membuat Premium Navicat Apr 09, 2025 am 07:09 AM

Buat pangkalan data menggunakan Navicat Premium: Sambungkan ke pelayan pangkalan data dan masukkan parameter sambungan. Klik kanan pada pelayan dan pilih Buat Pangkalan Data. Masukkan nama pangkalan data baru dan set aksara yang ditentukan dan pengumpulan. Sambung ke pangkalan data baru dan buat jadual dalam penyemak imbas objek. Klik kanan di atas meja dan pilih masukkan data untuk memasukkan data.

MySQL dan SQL: Kemahiran Penting untuk Pemaju MySQL dan SQL: Kemahiran Penting untuk Pemaju Apr 10, 2025 am 09:30 AM

MySQL dan SQL adalah kemahiran penting untuk pemaju. 1.MYSQL adalah sistem pengurusan pangkalan data sumber terbuka, dan SQL adalah bahasa standard yang digunakan untuk mengurus dan mengendalikan pangkalan data. 2.MYSQL menyokong pelbagai enjin penyimpanan melalui penyimpanan data yang cekap dan fungsi pengambilan semula, dan SQL melengkapkan operasi data yang kompleks melalui pernyataan mudah. 3. Contoh penggunaan termasuk pertanyaan asas dan pertanyaan lanjutan, seperti penapisan dan penyortiran mengikut keadaan. 4. Kesilapan umum termasuk kesilapan sintaks dan isu -isu prestasi, yang boleh dioptimumkan dengan memeriksa penyataan SQL dan menggunakan perintah menjelaskan. 5. Teknik pengoptimuman prestasi termasuk menggunakan indeks, mengelakkan pengimbasan jadual penuh, mengoptimumkan operasi menyertai dan meningkatkan kebolehbacaan kod.

Cara Membuat Sambungan Baru ke MySQL di Navicat Cara Membuat Sambungan Baru ke MySQL di Navicat Apr 09, 2025 am 07:21 AM

Anda boleh membuat sambungan MySQL baru di Navicat dengan mengikuti langkah -langkah: Buka aplikasi dan pilih Sambungan Baru (Ctrl N). Pilih "MySQL" sebagai jenis sambungan. Masukkan nama host/alamat IP, port, nama pengguna, dan kata laluan. (Pilihan) Konfigurasikan pilihan lanjutan. Simpan sambungan dan masukkan nama sambungan.

Cara Memulihkan Data Selepas SQL Memadam Barisan Cara Memulihkan Data Selepas SQL Memadam Barisan Apr 09, 2025 pm 12:21 PM

Memulihkan baris yang dipadam secara langsung dari pangkalan data biasanya mustahil melainkan ada mekanisme sandaran atau transaksi. Titik Utama: Rollback Transaksi: Jalankan balik balik sebelum urus niaga komited untuk memulihkan data. Sandaran: Sandaran biasa pangkalan data boleh digunakan untuk memulihkan data dengan cepat. Snapshot Pangkalan Data: Anda boleh membuat salinan bacaan pangkalan data dan memulihkan data selepas data dipadam secara tidak sengaja. Gunakan Pernyataan Padam dengan berhati -hati: Periksa syarat -syarat dengan teliti untuk mengelakkan data yang tidak sengaja memadamkan. Gunakan klausa WHERE: Secara jelas menentukan data yang akan dipadam. Gunakan Persekitaran Ujian: Ujian Sebelum Melaksanakan Operasi Padam.

Cara menggunakan redis berulir tunggal Cara menggunakan redis berulir tunggal Apr 10, 2025 pm 07:12 PM

Redis menggunakan satu seni bina berulir untuk memberikan prestasi tinggi, kesederhanaan, dan konsistensi. Ia menggunakan I/O multiplexing, gelung acara, I/O yang tidak menyekat, dan memori bersama untuk meningkatkan keserasian, tetapi dengan batasan batasan konkurensi, satu titik kegagalan, dan tidak sesuai untuk beban kerja yang berintensifkan.

See all articles