WebAppDev勉強会 #4

682 views

Published on

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

No Downloads
Views
Total views
682
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

WebAppDev勉強会 #4

  1. 1. Web Application Devlopment Webアプリ開発 #3 05.23.12
  2. 2. Presented by U-moa
  3. 3. Agenda 1. 自己紹介タイム 2. ワークショップSinatraではじめるWebアプリ開発 #4 3. LT(あれば) 4. ふりかえり
  4. 4. 自己紹介タイムSelf-Introduction
  5. 5. Self-Introduction• 名前• 所属• 好きなこと、最近やっていること などなど・・・
  6. 6. ワークショップWorkshop
  7. 7. WorkShop 今日の目標簡単なブログを作ってみよう (の続き)
  8. 8. SinatraではじめるWebアプリ開発 #4Sinatra is a DSL for quickly creatingweb application in Ruby with minimaleffort:
  9. 9. ウォームアップを兼ねて 前回のおさらい
  10. 10. erb• テキストファイルにrubyスクリプトを埋 め込むためのライブラリ• phpみたいに埋め込める• レイアウト機能がある
  11. 11. erb 1 require rubygems 2 require sinatra 3 4 get / do 5 @title = "My Web Application" 6 @content = "Hello, sinatra!" 7 erb :index 8 end 910 __END__1112 @@ layout13 <html>14 <head>15 <title><%=@title%></title>16 </head>17 <body>18 <%= yield %>19 </body>20 </html>2122 @@ index23 <%=@content%>
  12. 12. それでは
  13. 13. Blogを作ってみよう (の続き)
  14. 14. 記事の個別ページを作ろう• ある一つの記事を表示するページを作ろ う• URLで記事のidを受け取ろう• findで記事のデータを取ってこよう 1 get /article/:hoge do 2 params[:hoge] 3 end
  15. 15. 記事の作成日時を追加しよう• 記事のデータ項目に作成日時を追加する• 項目を変更したらdbファイル(‘*.sqlite3’)を 削除しよう 1 class Hoge < Sequel::Model 2 unless table_exists? 3 set_schema do 4 ... 5 datetime :created_at 6 ... 7 end 8 end 9 10 create_table 11 end 12 13 get ... do 14 Hoge.create(..., :created_at => DateTime.new) 15 end
  16. 16. コメント機能を追加しよう• 新しいテーブルを定義する(e.g. Comment) 項目はコメント文と記事のIDと作成日時 1 class Comment < Sequel::Model 2 unless table_exists? 3 set_schema do 4 primary_key :id 5 foreign_key :post_id, :posts # 先頭小文字、複数形 6 string :text, :text => true 7 datetime :created_at 8 end 9 10 create_table 11 end 12 end
  17. 17. コメント機能を追加しよう• コメント投稿用のフォームを追加しよう1 <form action="./<%= params[:id] %>/commented" method="post">2 <div>text :3 <textarea name="text" cols="40" rows="6”></textarea>4 </div>5 <input type="submit" value="コメントする">6 </form>• 投稿データを受け取ろう1 post /article/:id/commented do2 @comment = Comment.create(3 :post_id => params[:id], :text => params[:text],4 :created_at => DateTime.new)5 redirect "/article/#{params[:id]}"6 end
  18. 18. ふりかえりRetrospectives
  19. 19. KeepProblem Try
  20. 20. Keep = 良かったところProblem = 悪かったところ Try = 次回の取り組み

×