>  기사  >  데이터 베이스  >  MySQL과 Ruby on Rails를 사용하여 간단한 온라인 투표 시스템을 개발하는 방법

MySQL과 Ruby on Rails를 사용하여 간단한 온라인 투표 시스템을 개발하는 방법

王林
王林원래의
2023-09-21 13:41:201404검색

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

MySQL 및 Ruby on Rails를 사용하여 간단한 온라인 투표 시스템을 개발하는 방법

소개:
온라인 투표 시스템은 사용자가 웹 페이지에서 투표할 수 있도록 하고 투표 결과에 따라 통계 데이터를 생성하는 일반적인 응용 시나리오입니다. . 이 기사에서는 MySQL 및 Ruby on Rails 프레임워크를 사용하여 간단한 온라인 투표 시스템을 개발하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

1. 프로젝트 준비
개발을 시작하기 전에 다음 환경이 설치 및 구성되어 있는지 확인해야 합니다:

  1. Ruby 및 Ruby on Rails 프레임워크
  2. MySQL 데이터베이스.

2. Rails 프로젝트 생성
먼저 명령줄을 통해 새 Rails 프로젝트를 생성합니다:

rails new vote_system

3. 데이터베이스 구성
프로젝트 디렉터리에서 config/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 계정 및 비밀번호로 바꾸세요. 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/votes

4. 데이터 테이블 만들기

Rails 명령줄 도구를 사용하여 투표 모델 및 컨트롤러를 생성합니다.
rrreee

위 코드는 vote라는 모델을 자동으로 생성하고 해당 모델을 데이터베이스 데이터 테이블에는 두 개의 필드가 포함되어 있습니다. name은 투표 항목의 이름을 저장하고 count는 각 투표 항목에 대한 투표 수를 저장합니다. 🎜🎜5. 투표 인터페이스 작성 🎜app/views/votes/index.html.erb 파일을 열고 기본 템플릿 코드를 다음 코드로 바꿉니다. 🎜rrreee🎜위 코드는 Ruby의 템플릿 엔진 구문 df0f89786036e190db6c2138a7ad7453를 사용하여 투표 항목을 반복하고 이름과 현재 투표 수를 표시합니다. 투표 버튼은 link_to 메소드를 통해 생성되며 HTTP PATCH 요청을 사용하여 투표 번호를 업데이트합니다. 🎜🎜6. 투표 로직 작성🎜app/controllers/votes_controller.rb 파일을 열고 createupdate 메소드를 다음과 같이 수정하세요. 🎜rrreee🎜위 코드에서, create 메소드는 새로운 투표 항목을 생성하는 데 사용되며, update 메소드는 투표 수를 업데이트하는 데 사용됩니다. 그 중 투표수 업데이트 로직은 '투표' 버튼을 클릭할 때마다 해당 투표 항목의 count 필드가 1씩 증가한다는 것입니다. 🎜🎜7. 서버 시작🎜Rails 서버를 시작하려면 프로젝트 루트 디렉터리에서 다음 명령을 실행하세요.🎜rrreee🎜그런 다음 브라우저에서 http://localhost:3000/votes를 열어 액세스하세요. 투표 시스템 인터페이스. 🎜🎜결론: 🎜위 단계를 통해 우리는 MySQL과 Ruby on Rails 프레임워크를 사용하여 간단한 온라인 투표 시스템을 성공적으로 개발했습니다. 개발자는 사용자 인증 추가, 투표 옵션 정렬 및 기타 기능 등 실제 필요에 따라 시스템을 확장할 수 있습니다. 이 기사가 도움이 되기를 바랍니다! 🎜

위 내용은 MySQL과 Ruby on Rails를 사용하여 간단한 온라인 투표 시스템을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.