More Related Content
Similar to WebAppDev勉強会 #4 (20)
WebAppDev勉強会 #4
- 3. Agenda
1. 自己紹介タイム
2. ワークショップ
SinatraではじめるWebアプリ開発 #4
3. LT(あれば)
4. ふりかえり
- 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
9
10 __END__
11
12 @@ layout
13 <html>
14 <head>
15 <title><%=@title%></title>
16 </head>
17 <body>
18 <%= yield %>
19 </body>
20 </html>
21
22 @@ index
23 <%=@content%>
- 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. コメント機能を追加しよう
• コメント投稿用のフォームを追加しよう
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' do
2 @comment = Comment.create(
3 :post_id => params[:id], :text => params[:text],
4 :created_at => DateTime.new)
5 redirect "/article/#{params[:id]}"
6 end