MySQLとRuby on Railsを使ってシンプルなオンラインアンケートを作成する方法

MySQLとRuby on Railsを利用して簡単なオンラインアンケートを作成する場合、以下の手順が必要になります。

  1. MySQLデータベースの設定:開発環境にMySQLデータベースをインストールし、設定します。お使いのオペレーティングシステムに応じて、公式のMySQLインストーラーを使用するか、パッケージマネージャーからインストールするかを選択できます。
  2. Railsアプリケーションの作成:ターミナルで以下のコマンドを使用して、新しいRailsアプリケーションを作成します。
$ rails new survey_app
  1. データベース接続の設定: アプリケーションのルートディレクトリにある config/database.yml ファイルを開き、データベース設定が正しいことを確認します。ユーザー名とパスワードのフィールドを、MySQL の認証情報に設定します。
  2. ターミナルで以下のコマンドを実行してアンケートモデルと対応するデータベーステーブルを生成します。
$ rails generate model Survey title:string
$ rails generate model Question content:string survey:references
$ rails generate model Option content:string question:references
$ rails db:migrate

これにより、Survey、Question、Optionという名前のモデルが生成され、それに関連するデータベーステーブルが作成されます。

  1. アプリ/モデル
  2. app/models/survey.rb
class Survey < ApplicationRecord
has_many :questions
end

app/models/question.rbに以下を追加してください:

class Question < ApplicationRecord
belongs_to :survey
has_many :options
end

app/models/option.rb に以下のコードを追加します。

class Option < ApplicationRecord
belongs_to :question
end
  1. コントローラーとビューを生成する:以下のコマンドを実行して、設問を作成、表示、処理するためのコントローラーとビューを生成します。
$ rails generate controller Surveys
$ rails generate controller Questions
  1. config/routes.rb のネイティブな言い換え
Rails.application.routes.draw do
resources :surveys do
resources :questions
end
end
  1. app/controllers
  2. app/controllers/surveys_controller.rb
class SurveysController < ApplicationController
def index
@surveys = Survey.all
end
def show
@survey = Survey.find(params[:id])
end
def new
@survey = Survey.new
end
def create
@survey = Survey.new(survey_params)
if @survey.save
redirect_to @survey, notice: 'Survey was successfully created.'
else
render :new
end
end
private
def survey_params
params.require(:survey).permit(:title)
end
end

同様のコードを app/controllers/questions_controller.rb に追加して、質問関連の操作を処理します。

  1. アプリのビューディレクトリ(app/views)で、ビューを作成します。例として、app/views/surveys ディレクトリに index.html.erb、show.html.erb、new.html.erb の各ファイルを作成できます。
  2. アプリの実行: ターミナルで次のコマンドを実行してRailsサーバーを起動します:
$ rails server

ブラウザで「http://localhost:3000/surveys」にアクセスすると、アンケート一覧ページが表示されます。

これは実装における簡単な例の 1 つであり、ご自身のニーズやプロジェクトの要件に応じて拡張および改善することができます。

bannerAds