Rails初心者レッスン lesson2 3edition

889 views

Published on

Minami.rb beginners lesson

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
889
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rails初心者レッスン lesson2 3edition

  1. 1. 第3版Rails3.2 Rails3 初心者レッスン by Minami.rb L esso n 2
  2. 2. このレッスンでやること一覧1. Railsで何をする?どうしてRails?2. 作ってみよう事始め3. プロジェクトとテーブル4. Railsの役割分担5. Railsのディレクトリ構成6. scaffold(デフォルト)でのURL7. リレーションを考える8. 日本語対応9. 見た目をキレイに10. プラグインを使う11. ちょっとRubyに働いてもらう12. herokuに公開しよう
  3. 3. Lesson1の復習使ったコマンド$ rails new プロジェクト名$ rails generate scaffold テーブル名 カラム:データ型$ rake db:migrate$ rails console または rails c$ rails server または rails s$ rails -h$ rails generate -h$ rake -T$ rake routes
  4. 4. scaffold(デフォルト)でのURLURLの基本構成 http://host/resources #action => index http://host/resources/new #action => new http://host/resources #action => create http://host/resources/id #action => show http://host/resources/id/edit #action => edit http://host/resources/id #action => update http://host/resources/id #action => destroyURLの確認 $ rake routes
  5. 5. URLとリレーション URL設定とmodel(リレーション)設定をそれぞれ行う          app/models/以下に設定       config/routes.rbに設定URL →http://host/(親)s/:(親)id/(子)s   config/routes.rbに以下の設定 1 多 親 子     resources :(親)s do     resources :(子)s     endmodel →app/models/(親).rb に以下の設定     has_many :(子)s    app/models/(子).rb に以下の設定     belongs_to :(親)
  6. 6. URL設定例 1 多 publisher bookURL設定 config/routes.rb     resources :publishers do     resources :books     end → http://host/publishers/publisher_id/books $rake routesで確認してみよう
  7. 7. model(リレーション)設定例 1 多 publisher bookmodel設定 app/models/publisher.rb     has_many :books     app/models/books.rb     belongs_to :publisher
  8. 8. URLとリンク例:book#indexからbook#newへ $ rake routes で確認new_book GET /books/new(.:format) {:action=>"new", :controller=>"books"} URL app/views/books/index.html.erb の設定 <%= link_to New Book, new_book_path %> 一番前の部分を書く
  9. 9. 画面での呼び出し (id引き継ぎ) 実装の順番    Create → Read → Update → Delete がいいらしい。 Rails風には・・・    new+create → show/index → edit → delete例:memo登録画面にbookを表示する memo登録画面 URL:books/:book_id/memos/new book情報 memo登録 これを利用する
  10. 10. 画面での呼び出し (id引き継ぎ) 例:memo登録画面にbookを表示するapp/controllers/memos_controller.rb app/views/memos/_form.html.erbdef new <%= form_for([@book, @memo]) do ¦f¦ %> @memo = Memo.new ・・・ @book = Book.find(params[:book_id]) <div class="field"> ・・・ <%= f.label :memo_id %><br /> end <%= @book.title%><br /> <%= @book.author %>def create </div> @book = Book.find(params[:book_id]) ・・・ @memo = @book.memos.new(params[:memo]) <% end %> ・・・ end
  11. 11. 画面での呼び出し方 (セレクトボックス)例:book登録画面にpublisherを表示する book登録画面 URL:/books/new publisher情報 これどうしよう・・・? book登録 publisherを表示するための情報を取ってこないといけない!
  12. 12. 画面での呼び出し方 (セレクトボックス) 例:book登録画面にpublisherを表示するapp/controller/books_controller.rb app/views/books/_form.html.erbdef new <%= form_for([@publishers, @book]) do ¦f¦ %> @book = Book.new ・・・ @publishers = Publisher.all <div class="field"> ・・・ <%= f.label :publisher_id %><br /> end <%= f.select :publisher_id, @publishers.map{¦m¦ [m.name, m.id]} %>def create </div> [label, value] @book = Book.new(params[:entry]) ・・・ @book.publisher_id <% end %> = params[:book][:publisher_id] ・・・ RubyのEnumerable#map end
  13. 13. 考えてみよう 画面遷移とURLを決めよう。 config/routes.rbを設定しよう。 app/model/*.rbを設定しよう。 rake routesコマンドでURLを確認しながら、 app/views/*/*.html.erb や、app/controllers/*_controller.rb を設定して、リンクを貼ったり、必要な情報を各ページに表示させ よう。
  14. 14. おまけDBのテーブル+modelを追加するコマンド $ rails generate model library name:string location:string $ rake db:migratecontroller(+view)を作るコマンド $ rails generate controller bookracks s 要るよ!
  15. 15. Lesson2は、これで終わりです。 お疲れさまでした。

×