増減ボタンを押した回数を画面に表示し、データベースに保存するために、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アプリケーションが完成します。