Git Product home page Git Product logo

railsgirls's Introduction

railsgirls

railsgirls's People

Contributors

thori0908 avatar fr-sasaki avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar  avatar  avatar  avatar

railsgirls's Issues

issue2 モデル・ビュー・コントローラ作成

課題

railsではscaffoldコマンドを使用するだけで、モデル・ビュー・コントローラなどアプリケーションに必要なファイルを自動で作成することができます。以下が課題です。

  • scaffoldコマンドについて説明してください。
  • コマンドを用いて、ideaという名前のファイル群を作成してください。
  • railsを再起動し、ブラウザでideaのページを確認してください。

Ref.
http://www.rubylife.jp/rails/scaffold/index1.html#section1

Rails - リスト表示順カスタマイズ

目的

データベースからデータを取得する際、よく使う条件をモデルで定義することにより、コードの冗長化を防ぐことができます。名前付きスコープを使って、リストの表示順をカスタマイズしてみましょう。

課題

名前付きスコープを使って書籍リストの表示順をランクが大きい順に変更してください。なお、ランクが同じ書籍は、登録日時が新しい順に表示してください。

Ruby on Rails 研修内容メモ

メモ


  • rails generateコマンド
  • ルーティング
    • RESTful(resources)
  • MVC作成
  • テーブル・カラム追加
    • アソシエーション(has_manybelong_to
    • migration(up・down)
    • DB更新・ロールバック
    • カラムのデフォルト
    • 単数形・複数形などの注意
    • 中間テーブル
  • バリデーション
    • エラーメッセージの出力まで
  • デザイン
    • リストを表示
    • form_for, fields_for
    • リストの表示順を変更(scope)
  • gem追加
    • 写真アップロード機能を追加(carrierwave)
  • ロケール(多言語対応)
  • Rspec

その他

  • seedとか

古い研修
https://github.com/fact-real/developers_training_public/wiki/%E9%96%8B%E7%99%BA%E7%A0%94%E4%BF%AE-rails_old

Rails研修フォーム仕様

書籍管理システム(単一店舗編)

ある店舗が所有する本のリストを作成。

各ページ仕様

RESTfulな設計で以下のページを作成。

  • トップページ
    • 本の一覧へのリンク
  • 本の一覧ページ
    • トップページへのリンク
    • 本のタイトル・冊数・著者名(フルネームで)をid順に表示
    • 本の登録ページへのボタン
  • 本の登録ページ
    • トップページへのリンク
    • 本の一覧ページへのリンク
  • 登録ボタン・削除ボタン
    • バリデーション失敗時にリダイレクト

DB設計・バリデーション

著者と本が1対N関連になるように、以下の仕様で作成。

  • 本(id, book_name, rank, how_many_books)
    • id:1以上の整数
    • book_name:utf-8, 50文字以内
    • how_many_books:1以上の整数
  • 著者(id, first_name, last_name)
    • id:1以上の整数

書籍管理システム(複数店舗編)

各店舗が所有する本のリストを作成。

各ページ仕様

店舗一覧から店舗を選択後、選択された店舗が所有する本の一覧が表示されるフォームを、多言語対応で作成。
以下が各ページとその仕様。

  • トップページ
    • 本の一覧へのリンク
  • 店舗一覧ページ
    • 各店舗の名前、店舗画像、idをid順に表示
    • トップページへのリンク
    • 店舗登録ページへのリンク
  • 店舗登録ページ
    • トップページへのリンク
    • 各店舗が所有する本の一覧ページへのリンク
    • 登録ボタン・削除ボタン
    • バリデーション失敗時にリダイレクト
  • 本の一覧ページ
    • トップページへのリンク
    • 本のタイトル・冊数・著者名をid順に表示
    • 本の登録ページへのボタン
  • 本の登録ページ
    • トップページへのリンク
    • 登録ボタン・削除ボタン
    • バリデーション失敗時にリダイレクト

DB設計・バリデーション

本と店舗がN対N関連、著者と本が1対N関連になるように、以下の仕様で作成。

  • 本(id, book_name, rank)
    • id:1以上の整数
    • book_name:utf-8, 50文字以内
    • how_many_books:1以上の整数
  • 店舗(store_name, book_id)
  • 中間テーブル(book_id, store_id, how_many_books)
  • 著者(id, first_name, last_name)
    • id:1以上の整数

Rails - 多言語対応

目的

サイトを複数の言語に対応させる場合、ビューに文字を直接埋め込んでしまうと、言語毎にビューファイルを作成する必要性が生じます。この問題に対処するため、Railsのi18n APIを使った多言語対応ができるようになりましょう。

課題

i18nの多言語化ファイルを設定して、サイト内の日本語を表示してください。

Rails - 関連データベース作成

目的

rakeコマンドやマイグレーションの扱いに慣れてもらいます。書籍リストに著者の名前を表示しましょう。

課題1

railsコマンドで著者のテーブルを追加するマイグレーションを作成し、rakeコマンドで著者のテーブルを作成してください。必要に応じてupdownメソッドを使用してください。

課題2

belong_tohas_manyなどのアソシエーションついて調べ、モデルに実装し、著者名が追加された書籍リストを表示してください。

課題3

モデルにフルネームを出力するメソッドを追加し、書籍リストに著者名のフルネームを表示してください。

Ruby on Rails 研修概要

Rails環境構築

Railsアプリケーション作成

Railsで書籍管理システムを作成しましょう。

1.Railsの基本を理解しよう

まず、アプリケーションの雛形を作成し、MVCやマイグレーションなどの仕組みを理解しましょう。
次に、DBとRailsがどのように連動しているか理解しましょう。

  • アプリケーションの雛形作成(scaffold)
  • Railsの構造理解
    • Model・View・Controller
    • migration・schema
  • 関連データベース作成
  • テーブル作成
  • カラム追加
  • テーブル関連付け
  • Railsのバリデーション

2.いろいろ実装しよう

複数店舗の書籍管理ができるような変更、リスト表示順のカスタマイズ、画像アップロード機能など、アプリケーションを充実させましょう。

  • 多対多関連とRESTfulなルーティング
  • scopeを使ったリスト表示順カスタマイズ
  • gemによる機能拡張(carrierwave)
  • 多言語対応

テスト

Rspecを使って、テスト駆動開発(Test Driven Development; TDD)の流れを身に付けましょう。

Rails - 多対多関連とRESTfulなルーティング

目的

N対N(多対多)関連はよくある関連モデルですが、中間テーブルを作成する必要があり少々複雑です。課題で、複数店舗の書籍管理が可能なシステムを構築し、N対N関連に慣れましょう。

また、課題で新たなページを追加する必要があるので、RESTfulなルーティングを指定できるようになりましょう。

課題

N対N(多対多)関連について調べ、「書籍管理システム(複数店舗編)」の仕様でページを作成してください。ルーティングに関しても、RESTfulなルーティングを自分で書きましょう。

Rails - アプリケーションの雛形作成・構造理解

目的

Railsではscaffoldコマンドを使用するだけで、モデル・ビュー・コントローラなどアプリケーションに必要なファイルを自動で作成することができます。scaffoldで生成されたファイルをみてRailsの構造を理解しましょう。

課題1

  • scaffoldコマンドを用いて、bookという名前のファイル群を作成してください。
  • Railsを再起動し、ブラウザでbookのページを確認してください。

Ref.
http://www.rubylife.jp/rails/scaffold/index1.html#section1

課題2

db/migrateディレクトリ内にマイグレーションファイルと、db/schema.rbのそれぞれの役割を調べて下さい。

issue1 railsインストール

課題1

/public_html/railsgirlsディレクトリを作成し、railsをインストール後、コミットしてください。
また、gemはbundleを使って管理しましょう。

課題2

railsを起動して、ブラウザで画面が表示されていることを確認してください。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.