0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

画面にボタンを表示し、押した回数を記録する

Posted at

増減ボタンを押した回数を画面に表示し、データベースに保存するために、Ruby on Railsアプリケーションを作成できます。以下にステップバイステップで説明します。

  1. Railsアプリケーションの作成:

    rails new ButtonCounter
    cd ButtonCounter
    
  2. データベースの設定:

    データベースには、ボタンが押された回数を格納するためのテーブルを作成する必要があります。例としてSQLiteを使用します。

    rails generate model ButtonPress count:integer
    rake db:migrate
    
  3. モデルの設定:

    app/models/button_press.rb ファイルを開き、データベースのテーブルと関連づけます。

    class ButtonPress < ApplicationRecord
    end
    
  4. コントローラの作成:

    ボタンの押下回数を増加させるためのコントローラを作成します。

    rails generate controller ButtonPresses
    

    それから、app/controllers/button_presses_controller.rb ファイルを開き、以下のようにアクションを設定します。

class ButtonPressesController < ApplicationController
  def index
    @button_press = ButtonPress.first_or_create # 最初のレコードを作成または取得
  end

  def increment
    @button_press = ButtonPress.first_or_create # 最初のレコードを作成または取得
    @button_press.count = 0 if @button_press.count.nil? # count プロパティが nil の場合は初期化
    @button_press.count += 1
    @button_press.save
    redirect_to button_presses_path
  end

  def decrement
    @button_press = ButtonPress.first_or_create
    @button_press.count = 0 if @button_press.count.nil?
    @button_press.count -= 1 # 数を減らす
    @button_press.count = 0 if @button_press.count < 0 # カウントが負の値にならないようにする
    @button_press.save
    redirect_to button_presses_path
  end

end
  1. ビューの作成:

    app/views/button_presses ディレクトリ内にビューを作成します。

    • index.html.erb:
   <h1>Button Counter</h1>
   <p>Button pressed: <%= @button_press.count %></p>
   <%= link_to 'プラス', increment_button_presses_path, method: :post %>
      <%= link_to 'マイナス', decrement_button_presses_path, method: :post %>
  1. ルーティングの設定:

    config/routes.rb ファイルを開き、以下のようにルーティングを設定します。

    Rails.application.routes.draw do
      resources :button_presses, only: [:index] do
         post :increment, on: :collection
         post 'decrement', on: :collection
      end
      root to: 'button_presses#index'
    end
    
  2. サーバーの起動:

    アプリケーションを起動します。

    rails server
    
  3. アプリケーションの動作:

    ブラウザで http://localhost:3000 にアクセスし、ボタンを押すとカウントが増加し、その回数が表示されます。

これにより、ボタンを押した回数を画面に表示し、データベースに保存するシンプルなRailsアプリケーションが完成します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?