増減ボタンを押した回数を画面に表示し、データベースに保存するために、Ruby on Railsアプリケーションを作成できます。以下にステップバイステップで説明します。
-
Railsアプリケーションの作成:
rails new ButtonCounter cd ButtonCounter
-
データベースの設定:
データベースには、ボタンが押された回数を格納するためのテーブルを作成する必要があります。例としてSQLiteを使用します。
rails generate model ButtonPress count:integer rake db:migrate
-
モデルの設定:
app/models/button_press.rb
ファイルを開き、データベースのテーブルと関連づけます。class ButtonPress < ApplicationRecord end
-
コントローラの作成:
ボタンの押下回数を増加させるためのコントローラを作成します。
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
-
ビューの作成:
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 %>
-
ルーティングの設定:
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
-
サーバーの起動:
アプリケーションを起動します。
rails server
-
アプリケーションの動作:
ブラウザで
http://localhost:3000
にアクセスし、ボタンを押すとカウントが増加し、その回数が表示されます。
これにより、ボタンを押した回数を画面に表示し、データベースに保存するシンプルなRailsアプリケーションが完成します。