学生向けプログラミング入門

学生向けにプログラミングを解説。Java、C++、Ruby、PHP、データベース

Ruby on Rails

Ruby on RailsでWebアプリケーション開発その34 最後の管理ユーザを削除出来ないようにする

[TOP] 管理ユーザが一人もいなくなってしまうと管理画面にログイン出来なくなってしまうので、ユーザが最後の一人になったら削除できない設定にします。 まずはuserモデルの編集です。 【app/models/user.rb】 class User < ActiveRecord::Base validates :n…

Ruby on RailsでWebアプリケーション開発その33 アクセス制限の実装

[TOP] 次>> Railsのフィルタ機能を使い商品登録ページへのアクセス制限を実装していきます。 まずは「app/controllers」フォルダにある「application_controller.rb」ファイルの編集です。 【app/controllers/application_controller.rb】 class Application…

Ruby on RailsでWebアプリケーション開発その32 ログイン機能の実装

[TOP] 次>> ログインとログアウトのためのセッションコントローラと管理者用のコントローラを追加します。 まずはセッションコントローラの作成です。 コマンドプロンプトで「rails generate controller Sessions new create destroy」と入力します。 次に管…

Ruby on RailsでWebアプリケーション開発その31 管理ユーザ登録の実装

[TOP] 次>> 商品登録フォームをログインしたユーザしか使用できないように実装していきます。 まずはUserモデルを作成します。 作成するusersテーブルは以下のような構成になります。 name: ユーザ名(string型) password_digest: ハッシュ化されたパスワード…

Ruby on RailsでWebアプリケーション開発その30 商品登録ページにページネーションの実装(kaminari)

[TOP] 次>> Railsでページネーションを実装するには、前回に説明した「will_paginate」と「kaminari」によるものがあります。 今回は商品登録ページに「kaminari」によるページネーションを実装していきます。 まずは「kaminiari」のインストールです。 「Ge…

Ruby on RailsでWebアプリケーション開発その29 注文一覧ページにページネーションの実装(will_paginate)

[TOP] 次>> 多くの注文を受けた時、ページのスクロールが大変なので1ページに表示する件数を10件までにしたいという時にこの「ページネーション」を利用します。 これには、gemに「will_paginate」をインストールしなければなりません。 まずは「Gemfile…

Ruby on RailsでWebアプリケーション開発その28 注文一覧ページの実装

[TOP] 次>> まずは商品管理画面から注文一覧ページへのリンクを作成します。 「app/views/goods」フォルダの「index.html.erb」ファイルに「注文を見る」ボタンの実装です。 【app/views/goods/index.html.erb】 <% if notice %> <p id="notice"><%= notice %></p> <% end %> <h1>Ra</h1>…

Ruby on RailsでWebアプリケーション開発その27 注文情報入力フィールドの検証(日本語化)

[TOP] 次>> 注文情報入力フィールドにvalidateを設定します。 orderモデルにvalidateの記述を追記します。 【app/models/order.rb】 class Order < ActiveRecord::Base has_many :line_items, dependent: :destroy validates_presence_of :name, :address, :…

Ruby on RailsでWebアプリケーション開発その26 注文確定ボタンの実装

[TOP] 次>> まずはテーブルリレーションの定義をします。 line_itemモデルにline_itemからorderへのリレーションを追加します。 【app/models/line_item.rb】 class LineItem < ActiveRecord::Base belongs_to :order belongs_to :good belongs_to :cart def…

Ruby on RailsでWebアプリケーション開発その25 注文フォームの作成

[TOP] 次>> 注文を受ける機能を実装してきます。 実装するordersテーブルのフィールドは以下のようにします。 name: 客氏名(string型) address: 客住所(text型) email: 客メールアドレス(string型) tel_number: 客電話番号(string型) pay_type: 支払い方法(s…

Ruby on RailsでWebアプリケーション開発その24 買い物カートの削除機能

[TOP] 次>> 買い物カートから、商品を削除出来る機能を実装していきます。 まずは「line_items_controller.rb」の編集です。 【app/controllers/line_items_controller.rb】 class LineItemsController < ApplicationController before_action :set_line_ite…

Ruby on RailsでWebアプリケーション開発その23 買い物カートの合計を表示させる

[TOP] 次>> カート全体の合計価格を実装します。 まずは「line_item(品目)」の合計を出します。 line_itemモデルの「line_item.rb」ファイルを以下のように編集します。 【app/models/line_item.rb】 class LineItem < ActiveRecord::Base belongs_to :goo…

Ruby on RailsでWebアプリケーション開発その22 買い物カートを空にする

[TOP] 次>> カートの中身を空にする機能を実装していきます。 まずはボタンの実装です。 「app/views/carts」フォルダにある「show.html.erb」ファイルを以下のように編集します。 【app/views/carts/show.html.erb】 <% if notice %> <p id="notice"><%= notice %></p> <% end …

Ruby on RailsでWebアプリケーション開発その21 買い物カートのマイグレーション

[TOP] 次>> 現在のカートの状態は別々に表示された商品と数量が2つの商品が混在しています。 ここでその複数行を1つにまとめるという処理を行います。 まずはマイグレーションの作成です。 コマンドプロンプトで「shop」フォルダに移動し、「rails generat…

Ruby on RailsでWebアプリケーション開発その20 買い物カートに数量を追加

[TOP] 次>> カートの商品に数量をつけるために「line_items」テーブルを修正します。 コマンドプロンプトで「shop」フォルダに移動し、「rails generate migration add_quantity_to_line_items quantity:integer」と入力して下さい。 「int」型の「quantity…

Ruby on RailsでWebアプリケーション開発その19 買い物カートのテーブル作成

[TOP] 次>> 商品をセッションカートという一時的な保存場所に格納出来るようなシステムを作っていきます。 Railsでは、アクセスしている人が実行するすべての操作を追跡できるようにするために、sessionと呼ばれるものを使用しています。 sessionはコントロ…

Ruby on RailsでWebアプリケーション開発その18 買い物フォームの作成

[TOP] 次>> これから作成するコントローラは、商品を買い物出来るようにするもので、名前を「marketコントローラ」とします。 新しいコントローラをジェネレータで作成するにはコマンドプロンプトで、「shop」フォルダに移動して「rails generate controller…

Ruby on RailsでWebアプリケーション開発その17 アプリケーションの再実装

[TOP] 次>> 今までSQLite環境でやってきたアプリケーションの実装をMySQL環境でやっていきます。 Railsのバージョンも4.2に変更しているので、記述が若干異なっています。 「shop」フォルダにある「Gemfile」というファイルを開いて、最後に「gem 'coffee-sc…

Ruby on RailsでWebアプリケーション開発その16 MySQLの接続と作成

[TOP] 次>> MySQLデータベースを使用して「shop」アプリケーションを作り直します。 「work」フォルダにある今まで作成してきた「shop」フォルダは別の場所に移動して「work」フォルダが何もない状態にしておいて下さい。 ではコマンドプロンプトで「work」…

Ruby on RailsでWebアプリケーション開発その15 Rubyの再インストール

[TOP] 次>> RailsでMySQLを利用するにはまずRubyのバージョンを2.3にしなければなりませn。 「Ruby 2.4.3」だと「generate scaffold」の時点でRubyのエラーが出ました。 「Ruby 2.4.3」をあらかじめアンインストールしておいて下さい。 「DEVELOPMENT KIT」…

Ruby on RailsでWebアプリケーション開発その14 MySQLのインストール

[TOP] 次>> 今後は商品をセッションカートという一時的な保存場所に格納出来るようなシステムを作っていきたいのですが、SQLiteでは使用できるデータ型が少なく、作ることが出来ません。 SQLiteで進めるのはここまでとして、これからはMySQLをインストールし…

Ruby on RailsでWebアプリケーション開発その13 レイアウトの編集

[TOP] 次>> Railsにはレイアウトを表示させる機能があります。 レイアウトは「app」の「views」フォルダの中にある「layouts」フォルダに置くことになっています。 レイアウトファイルは「application.html.erb」という名前です。 タイトルの部分だけ編集し…

Ruby on RailsでWebアプリケーション開発その12 表示(show)と編集(edit)の修正

[TOP] 次>> まずは表示フォームの編集をしていきます。 デフォルトの見た目はこんな感じです。 「app」フォルダから「views」「goods」と進んだフォルダにある「show.html.erb」ファイルのを以下のように編集します。 【app/views/goods/show.html.erb】 <h1>商</h1>…

Ruby on RailsでWebアプリケーション開発その11 コントローラの編集

[TOP] 次>> ここで、商品登録フォームはすべて日本語になり見やすくなりましたが、実際に新しい商品を登録してみると英語のメッセージが表示されたりします。 このあたりの見た目も直していきます。 コントローラファイルの編集をしていきます。 「app/contr…

Ruby on RailsでWebアプリケーション開発その10 登録フォームの変更

[TOP] 次>> 商品の登録フォームも編集します。 「商品登録」ボタンをクリックすると、URLは以下のようになっています。 このURL「http://localhost:3000/goods/new」は重要な意味を持っています。 URLの最後は「/goods/new」となっています。 詳しく内容を書…

Ruby on RailsでWebアプリケーション開発その9 画像を表示する

[TOP] 次>> Railsでは画像をフォルダに保存して表示させることが出来ます。 保存する場所は「shop」フォルダの中にある「public」フォルダか、「app」の中の「assets」フォルダにある「images」フォルダのどちらかです。 「public」フォルダに画像を保存した…

Ruby on RailsでWebアプリケーション開発その8 トップページの見た目を変える

[TOP] 次>> 商品リストの表示は自動生成されたものです。。 編集するには「app/views/goods/index.html.erb」ファイルの記述を変更します。 まずはデフォルトの内容を見てみましょう。 【app/views/goods/index.html.erb】 <p id="notice"><%= notice %></p> <h1>Goods</h1> <table> <thead> <tr> <th>Goods</th> <th>Tit</th></tr></thead></table>…

Ruby on RailsでWebアプリケーション開発その7 入力された値が正しいかをチェックする

[TOP] 次>> 登録フォームで入力するフィールドが空の状態であったり、正しくないデータ形式である場合にそのまま保存できてしまうと困ります。 そこで、入力された値をデータベースに保存する前にチェックします。 その仕事をするのがvalidates(バリデート…

Ruby on RailsでWebアプリケーション開発その6 フォームの作成

[TOP] 次>> 「Puma」は、Railsを動かすためのWebサーバです。 ここからはこの「Puma」を起動して、変更を目で確認しながら進めていきます。 それでは、早速「Puma」を起動してみます。 コマンドプロンプトを立ち上げて「shop」フォルダに移動します。 そこで…

Ruby on RailsでWebアプリケーション開発その5 テーブルの作成

[TOP] 次>> まずは、商品を格納するテーブルを作成します。 テーブルの名前は必ず複数形にするのがルールです。 この後、実際にRubyでコードを書いていくモデルクラスというものが登場しますが、そのモデルクラスの名前は単数形で最初の文字は大文字というル…