サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
rails.densan-labs.net
1.7.1. 課題: 問い合わせフォームの実装¶ 単純な問い合わせフォームの実装を考えてみます。 問い合わせフォームでは、システム利用者が運営管理者に対して、意見を送ることができます。 画面イメージは以下の通りです。 「運営者に意見を送る」ボタンをクリックすると、DBに問い合わせフォームの内容が保存されます。 システムによっては、ボタン押下のタイミングで運営管理者に対してメールを送る、 などの実装も考えられます。 ここで一つ問題が発生しました。 ユーザが意見を送るボタンを連打すると、問い合わせが何度も実行されてしまいます。 問い合わせが何度も行われてしまうと、DBに重複したデータが登録されてしまいます。 場合によっては、メールが何通も飛んでしまったり、サーバに無駄な負荷がかかってしまいます。 1.7.2. Javascriptでサーバの二重投稿を防止する¶ 二重投稿を防止するには、「運営者
Railsアプリケーション構築ガイド
1.6.1. 課題: 商品の入荷予定日と公開予定時刻を登録可能なフォームの実装¶ 日付、時刻(日時分)を登録する方法について、商品の登録画面を例に検討します。 商品登録画面では、商品の入荷予定日と公開予定日を登録可能です。 今回は、同じ画面を以下2つのパターンで実装する方法を考えてみます。 日付、時刻をセレクトボックスで選ばせる 日付のみカレンダーから選ばせ、時刻はセレクトボックスで選ばせる # == Schema Information # # Table name: products # 商品 # # id :integer not null, primary key # name :string(50) not null # 商品名 # arrival_date :date not null # 入荷予定日 # published_at :datetime not null # 公開
1.2.1. 課題: 商品一括登録画面の実装¶ 今回は一括登録画面について、販売管理システムのサンプルアプリケーションを例に考えてみます。 この販管システムでは商品マスタ情報を一括新規登録することが可能です。 実装したい新規登録画面は下図の通りです。 # == Schema Information # # Table name: products # # id :integer not null, primary key # code :string(10) not null # 商品コード # name :string(50) not null # 商品名 # name_kana :string(50) default(""), not null # 商品名カナ # price :integer not null # 商品価格 # purchase_cost :integer not n
Railsアプリケーション構築ガイド¶ 業務でRuby on Railsを利用する人のための、アプリケーション構築ガイド 最終更新日: Feb 03, 2018 Ruby on Railsは、流儀・規則に従うことで効率的なシステム開発が可能となるWebアプリケーションフレームワークです。 レールの上に乗って開発を行っているうちは、 少ないコード量で複雑なアプリケーションを 簡単に実装できる、Railsというフレームワークの強力さ、美しさを体感できるはずです。 しかし、少しでもレールから外れたアプリケーションを実装しようとすると、途端に複雑になるのも事実です。 業務アプリケーション構築の分野では、Railsの流儀とは相容れない実装を強いられる事が多々あります。 レールから外れたアプリケーションをよく考えずに実装すると、 コードが難解になり、システムのメンテナンス性が大きく下がってしまいます。
1.1.1. 課題: 商品検索画面の実装¶ 今回は業務システムにはつきものの検索画面実装について、以下販売管理システムのサンプルアプリケーションを例に考えてみます。 実装したい画面は下図の通りです。 # == Schema Information # # Table name: products # # id :integer not null, primary key # code :string(10) not null # 商品コード # name :string(50) not null # 商品名 # name_kana :string(50) default(""), not null # 商品名カナ # price :integer not null # 商品価格 # purchase_cost :integer not null # 仕入原価 # availability
1.4.1. 課題: 商品登録画面の実装¶ 多対多の関連を持つオブジェクトの編集画面について、 販売管理システムの商品登録画面を例に考えてみます。 商品登録画面では、商品に関する基本情報と商品カテゴリを登録可能です。 画面のイメージは下図の通りです。 商品にはカテゴリ情報を付与することができます。 カテゴリを追加ボタンを押すことで、商品に関連するカテゴリをいくつでも設定可能です。 また、不要なカテゴリは削除ボタンを押すことで削除可能です。 システムはproducts(商品)テーブルと、categories(カテゴリ)テーブル、 product_categories(商品カテゴリ)テーブルを持ちます。 商品とカテゴリは多対多の関連にあり、中間テーブルとして商品カテゴリテーブルを持ちます。 DB設計は以下の通りです。 # == Schema Information # # Table name
2.1.2. ActiveRecordモデルのデータをCSV出力する¶ Product(商品)モデルのデータをCSV出力する方法について考えてみます。 # 商品の全データをCSV出力する Product.all.to_csv # 商品ID 1,2,3 のデータをCSV出力する Product.where(id: [1,2,3]).to_csv # 商品名、価格のみCSV出力、ヘッダも「商品名,価格」という文字列に変更する # データはUTF-8で出力 Product.all.to_csv(header: ['商品名', '価格'], columns: ['name', 'price'], encoding: Encoding::UTF_8) # app/models/concerns/csv_exportable.rb require 'csv' module CsvExportable
1.3.1. 課題: 受注登録画面の実装¶ 1対多の関連を持つオブジェクトの編集画面について、 販売管理システムの受注登録画面を例に考えてみます。 受注登録画面では、受注に関する基本情報(受注名称と取引先)と明細情報を登録可能です。 画面のイメージは下図の通りです。 明細を追加ボタンを押すことで、受注明細をいくつでも追加可能です。 不要な明細は削除ボタンを押すことで削除可能です。 システムはorders(注文)テーブルと、order_details(注文明細)テーブルを持ち、 注文と注文明細は1対多の関連を持ちます。 また、corporations(法人)テーブルとproducts(商品)テーブルも今回の販管システムでは持っています。 corporationsは注文と関連を持ち、productsは注文明細と関連を持ちます。 DB設計は以下の通りです。 # == Schema Informa
このページを最初にブックマークしてみませんか?
『Railsアプリケーション構築ガイド — Railsアプリケーション構築ガイド』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く