


Bagaimana untuk membangunkan sistem soal selidik dalam talian yang mudah menggunakan MySQL dan 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
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
Pindahkan jadual pangkalan data
rails db:migrate
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
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
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 %>
Kemudian, buat laluan yang sepadan dalam fail penghalaan:
# config/routes.rb Rails.application.routes.draw do resources :questionnaires end
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
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
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 %>
Sehubungan itu, tambahkan laluan yang sepadan dalam fail penghalaan:
# config/routes.rb Rails.application.routes.draw do resources :questionnaires do resources :questions end end
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
# 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 %>
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
# config/routes.rb Rails.application.routes.draw do resources :questionnaires do resources :questions end resources :answers end
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
# config/routes.rb Rails.application.routes.draw do resources :questionnaires do resources :questions member do get 'statistics' end end resources :answers end
# 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 %>
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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 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.

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".

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 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.

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.

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.

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.
