プロジェクト

全般

プロフィール

ScaffoldPlusAnswerTwo » 履歴 » バージョン 7

Yuumi Yoshida, 2008-01-13 15:44

1 1 Yuumi Yoshida
= 演習2解答例 =
2
3 4 Yuumi Yoshida
== 作業手順 ==
4
{{{
5 5 Yuumi Yoshida
ruby script/generate migration AddMemoToTodo memo:text
6 4 Yuumi Yoshida
rake db:migrate
7
}}}
8
9 1 Yuumi Yoshida
== 変更点 ==
10
11 3 Yuumi Yoshida
=== 1. helpers/todos_helper.rb ===
12
改行を<br/>タグに変換する new_lineメッソドを追加
13
{{{
14 7 Yuumi Yoshida
#!html
15
<pre class="wiki">module TodosHelper
16
17
  <font color="red">def new_line(s)
18
    s.gsub(/\n/, "&lt;br&gt;")
19
  end</font>
20
21
end
22
</pre>
23 1 Yuumi Yoshida
}}}
24
25
=== 2. app/views/todos/show.html.erb ===
26
27 7 Yuumi Yoshida
memoカラム表示用のコードを追加
28 1 Yuumi Yoshida
{{{
29 7 Yuumi Yoshida
#!html
30
<pre class="wiki">&lt;p&gt;
31
  &lt;b&gt;Due:&lt;/b&gt;
32
  &lt;%25=h @todo.due %25&gt;
33
&lt;/p&gt;
34 1 Yuumi Yoshida
35 7 Yuumi Yoshida
&lt;p&gt;
36
  &lt;b&gt;Task:&lt;/b&gt;
37
  &lt;%25=h @todo.task %25&gt;
38
&lt;/p&gt;
39 1 Yuumi Yoshida
40 7 Yuumi Yoshida
<font color="red">&lt;p&gt;
41
  &lt;b&gt;Memo:&lt;/b&gt;&lt;br/&gt;
42
  &lt;%25=new_line(h(@todo.memo)) %25&gt;
43
&lt;/p&gt;</font>
44 1 Yuumi Yoshida
45 7 Yuumi Yoshida
&lt;%25= link_to 'Edit', edit_todo_path(@todo) %25&gt; |
46
&lt;%25= link_to 'Back', todos_path %25&gt;
47
</pre>
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>Memo</b><br />
78
    <%25= f.text_area :memo %25>
79
  </p>
80
81
  <p>
82
    <%25= f.submit "Update" %25>
83
  </p>
84
<%25 end %25>
85
86
<%25= link_to 'Show', @todo %25> |
87 1 Yuumi Yoshida
<%25= link_to 'Back', todos_path %25>
88 2 Yuumi Yoshida
}}}
89
90 3 Yuumi Yoshida
=== 4. app/views/todos/new.html.erb ===
91 2 Yuumi Yoshida
92
memoカラム入力用の
93
{{{
94
  <p>
95
    <b>Memo</b><br />
96
    <%25= f.text_area :memo %25>
97
  </p>
98
}}}
99
のコードを追加、全体では以下のようになります。
100
{{{
101
<h1>New todo</h1>
102
103
<%25= error_messages_for :todo %25>
104
105
<%25 form_for(@todo) do |f| %25>
106
  <p>
107
    <b>Due</b><br />
108
    <%25= f.date_select :due %25>
109
  </p>
110
111
  <p>
112
    <b>Task</b><br />
113
    <%25= f.text_field :task %25>
114
  </p>
115
116
  <p>
117
    <b>Memo</b><br />
118
    <%25= f.text_area :memo %25>
119
  </p>
120
121
  <p>
122
    <%25= f.submit "Create" %25>
123
  </p>
124
<%25 end %25>
125
126
<%25= link_to 'Back', todos_path %25>                                                                                          
127 1 Yuumi Yoshida
}}}
128
129
130
== ソースコード  ==
131
132
 解答例のソースコードは http://www.ey-office.com/trac/rails/browser/tags/todo_q2で参照できます。