MySQL と Ruby on Rails を使用してシンプルなオンライン投票システムを開発する方法

王林
リリース: 2023-09-21 13:41:20
オリジナル
1413 人が閲覧しました

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

MySQL と Ruby on Rails を使用してシンプルなオンライン投票システムを開発する方法

はじめに:
オンライン投票システムは一般的なアプリケーション シナリオであり、ユーザーは次のことを行うことができます。 Web ページ上で投票が行われ、投票結果に基づいて統計が生成されます。この記事では、MySQL と Ruby on Rails フレームワークを使用して簡単なオンライン投票システムを開発する方法と、具体的なコード例を紹介します。

1. プロジェクトの準備
開発を開始する前に、次の環境がインストールおよび構成されていることを確認する必要があります:

  1. Ruby および Ruby on Rails フレームワーク;
  2. MySQL データベース。

2. Rails プロジェクトの作成
まず、コマンド ラインを使用して新しい Rails プロジェクトを作成します:

rails new vote_system
ログイン後にコピー

3. データベースを構成します
プロジェクト ディレクトリの 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_usernameyour_password を MySQL アカウントとパスワードに置き換えます。

4. データ テーブルを作成する
Rails コマンド ライン ツールを使用して投票モデルとコントローラーを生成します:

rails generate scaffold Vote name:string count:integer
rails db:migrate
ログイン後にコピー

上記のコードは、vote# という名前のファイルを自動的に生成します。 ## モデルを作成し、データベースに対応するデータ テーブルを作成します。このテーブルには 2 つのフィールドが含まれています: name には投票項目の名前が格納され、count には各項目の投票数が格納されます投票項目。

5. 投票インターフェイスを作成します

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 リクエストを使用して投票数を更新します。

6. 投票ロジックを作成します

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 ずつインクリメントされます。

7. サーバーを起動します

プロジェクト ルート ディレクトリで次のコマンドを実行して、Rails サーバーを起動します:

rails server
ログイン後にコピー
次に、

http://localhost:3000/votes を開きます。ブラウザ で投票システム インターフェイスにアクセスします。

結論:

上記の手順により、MySQL と Ruby on Rails フレームワークを使用したシンプルなオンライン投票システムの開発に成功しました。開発者は、ユーザー認証、投票オプションの並べ替え、その他の機能の追加など、実際のニーズに応じてシステムを拡張できます。この記事がお役に立てば幸いです!

以上がMySQL と Ruby on Rails を使用してシンプルなオンライン投票システムを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート