プロジェクト

全般

プロフィール

ScaffoldPlusAnswerTwo » 履歴 » バージョン 3

Yuumi Yoshida, 2008-01-13 11:35

1 1 Yuumi Yoshida
= 演習2解答例 =
2
3
== 変更点 ==
4
5 3 Yuumi Yoshida
=== 1. helpers/todos_helper.rb ===
6
改行を<br/>タグに変換する new_lineメッソドを追加
7
{{{
8
#!ruby
9
  def new_line(s)
10
    s.gsub(/\n/, "<br />")
11
  end
12
}}}
13 1 Yuumi Yoshida
14 3 Yuumi Yoshida
=== 2. app/views/todos/show.html.erb ===
15
16 1 Yuumi Yoshida
memoカラム表示用の
17
{{{
18
<p>
19
  <b>Memo:</b><br/>
20
  <%25=new_line(h(@todo.memo)) %25>
21
</p>
22
}}}
23
のコードを追加、全体では以下のようになります。
24
{{{
25
<p>
26
  <b>Due:</b>
27
  <%25=h @todo.due %25>
28
</p>
29
30
<p>
31
  <b>Task:</b>
32
  <%25=h @todo.task %25>
33
</p>
34
35
<p>
36
  <b>Name:</b>
37
  <%25=h @todo.user.name %25>
38
</p>
39
40
<p>
41
  <b>Memo:</b><br/>
42
  <%25=new_line(h(@todo.memo)) %25>
43
</p>
44
45
46
<%25= link_to 'Edit', edit_todo_path(@todo) %25> |
47 2 Yuumi Yoshida
<%25= link_to 'Back', todos_path %25>
48 1 Yuumi Yoshida
}}}
49 2 Yuumi Yoshida
50 3 Yuumi Yoshida
=== 3. app/views/todos/edit.html.erb ===
51 2 Yuumi Yoshida
52
memoカラム入力用の
53
{{{
54
  <p>
55
    <b>Memo</b><br />
56
    <%25= f.text_area :memo %25>
57
  </p>
58
}}}
59
のコードを追加、全体では以下のようになります。
60
{{{
61
<h1>Editing todo</h1>
62
63
<%25= error_messages_for :todo %25>
64
65
<%25 form_for(@todo) do |f| %25>
66
  <p>
67
    <b>Due</b><br />
68
    <%25= f.date_select :due %25>
69
  </p>
70
71
  <p>
72
    <b>Task</b><br />
73
    <%25= f.text_field :task %25>
74
  </p>
75
76
  <p>
77
    <b>Name</b><br />
78
    <%25= f.select :user_id, User.find(:all).collect {|u| [ u.name, u.id ] } %25>
79
  </p>
80
81
  <p>
82
    <b>Memo</b><br />
83
    <%25= f.text_area :memo %25>
84
  </p>
85
86
  <p>
87
    <%25= f.submit "Update" %25>
88
  </p>
89
<%25 end %25>
90
91
<%25= link_to 'Show', @todo %25> |
92 1 Yuumi Yoshida
<%25= link_to 'Back', todos_path %25>
93 2 Yuumi Yoshida
}}}
94
95 3 Yuumi Yoshida
=== 4. app/views/todos/new.html.erb ===
96 2 Yuumi Yoshida
97
memoカラム入力用の
98
{{{
99
  <p>
100
    <b>Memo</b><br />
101
    <%25= f.text_area :memo %25>
102
  </p>
103
}}}
104
のコードを追加、全体では以下のようになります。
105
{{{
106
<h1>New todo</h1>
107
108
<%25= error_messages_for :todo %25>
109
110
<%25 form_for(@todo) do |f| %25>
111
  <p>
112
    <b>Due</b><br />
113
    <%25= f.date_select :due %25>
114
  </p>
115
116
  <p>
117
    <b>Task</b><br />
118
    <%25= f.text_field :task %25>
119
  </p>
120
121
  <p>
122
    <b>Memo</b><br />
123
    <%25= f.text_area :memo %25>
124
  </p>
125
126
  <p>
127
    <%25= f.submit "Create" %25>
128
  </p>
129
<%25 end %25>
130
131
<%25= link_to 'Back', todos_path %25>                                                                                          
132 1 Yuumi Yoshida
}}}
133
134
135
== ソースコード  ==
136
137
 解答例のソースコードは http://www.ey-office.com/trac/rails/browser/tags/todo_q2で参照できます。