* Viewについて [#tf1d5793] #contents ** Viewの役割 [#kbdc7a2b] Viewでは、Contollerで設定されたデータを表示する。 ** 基本法則 [#y005f157] RHTMLでは、<% ... %>と、<%= ... %>の、二つのタグにRubyコードを含められること意外はテキストデータと同等である。 <% ... %>は、Ruby式の評価結果を出力としないタグであり、<%= ... %>は、Ruby式の評価結果を出力するタグである。 <% for i in @data %> <%= i.text %> <% end %> この例では、@data.eachの結果を一つずつiに代入して繰り返すforの中で、i.textの評価結果を出力として挿入する。結局、@data.eachで与えられるものすべての.textを評価して、その結果で置換するということになる。 ** データを表示する [#kb1f431f] 最も簡単なデータ表示の方法は、<%= ... %>により、式の評価結果を直接埋め込む方法である。 ** フォームを作る [#fc197c4a] フォームは、form_forメソッドで生成できる。 <% form_for(:[モデル名], :url => { [link_toの引数と同じもの] }) do |[引数変数]| %> [フォーム詳細] <% end %> 例えば、今のControllerのまま、new_entryというメソッドにリクエストを行うには、次のような記述になる。 <% form_for(:model, :url => { :action => "new_entry" }) do |i| %> [フォーム詳細] <% end %> *** テキストフィールド [#gcc20f24] テキストフィールドでデータを表示・編集させる例は次の通り。 <%= i.text_field(:[列名]) %> *** テキストエリア [#de635364] テキストエリアでデータを表示・編集させる例は次の通り。 <%= i.text_area(:[列名]) %> *** コンボボックス [#ue925a99] コンボボックスでデータを表示・編集させる例は次の通り。 <%= i.select(:[列名], [選択肢]) %> 選択肢は、配列(表示名と実際の値が同じ)か、連想配列(表示名 => 実際の値)を、指定できる。 *** チェックボックス [#e43efdbb] チェックボックスでデータを表示・編集させる例は次の通り。 <%= i.check_box(:[列名]) %> オプションとして、checkedの場合の値や、checkedでない場合の値を指定できる。 <%= i.check_box(:[列名], checked_value = "1", unchecked_value = "0" %>