プロジェクト

全般

プロフィール

ScaffoldPlusAnswerTwo » 履歴 » バージョン 10

Yuumi Yoshida, 2008-01-13 17:34

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