railsgirls's Introduction
railsgirls's People
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_many
・belong_to
) - migration(up・down)
- DB更新・ロールバック
- カラムのデフォルト
- 単数形・複数形などの注意
- 中間テーブル
- アソシエーション(
- バリデーション
- エラーメッセージの出力まで
- デザイン
- リストを表示
form_for
,fields_for
- リストの表示順を変更(scope)
- gem追加
- 写真アップロード機能を追加(carrierwave)
- ロケール(多言語対応)
- Rspec
その他
- seedとか
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
コマンドで著者のテーブルを作成してください。必要に応じてup
、down
メソッドを使用してください。
課題2
belong_to
やhas_many
などのアソシエーションついて調べ、モデルに実装し、著者名が追加された書籍リストを表示してください。
課題3
モデルにフルネームを出力するメソッドを追加し、書籍リストに著者名のフルネームを表示してください。
Rails - gemによる機能拡張
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)の流れを身に付けましょう。
issue3 デザインを変更する
課題
以下ページの3.デザインする
をもとに、ページのレイアウトを変更し、PRしてください。
http://railsgirls.jp/app/#idea--scaffold-
fields_for
Rails - 多対多関連とRESTfulなルーティング
目的
N対N(多対多)関連はよくある関連モデルですが、中間テーブルを作成する必要があり少々複雑です。課題で、複数店舗の書籍管理が可能なシステムを構築し、N対N関連に慣れましょう。
また、課題で新たなページを追加する必要があるので、RESTfulなルーティングを指定できるようになりましょう。
課題
N対N(多対多)関連について調べ、「書籍管理システム(複数店舗編)」の仕様でページを作成してください。ルーティングに関しても、RESTfulなルーティングを自分で書きましょう。
issue4 写真アップロード機能を追加する
課題
http://railsgirls.jp/app/#idea--scaffold-
を参考にして写真アップロード機能を追加してください。
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
のそれぞれの役割を調べて下さい。
issue6 姓と名に分けてフルネームを表示するメソッドを作成
課題
nameを姓と名に分け、インデックス画面にフルネームを表示する仕様にしてください。
- 姓と名に分ける
- カラムの変更・追加
- fullnameメソッド
- バリデーション
- Rspec
Rails - バリデーション
課題
issue1 railsインストール
課題1
/public_html/railsgirls
ディレクトリを作成し、railsをインストール後、コミットしてください。
また、gemはbundleを使って管理しましょう。
課題2
railsを起動して、ブラウザで画面が表示されていることを確認してください。
issue5 routes を調整 ページ追加
課題
http://railsgirls.jp/app/#idea--scaffold-
を参考に以下を実装してください。
http://localhost:3000
にアクセス時、ideasページへリダイレクトするように変更http://localhost:3000/pages/info
というページを追加し、ブラウザで確認
Rails:構造理解
課題
マイグレーション
カラムを追加するマイグレーションを$ rails g migration
で作成する。
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.