rails:action_view
差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| rails:action_view [2009/11/17 06:12] – 外部編集 127.0.0.1 | rails:action_view [2011/11/16 00:40] (現在) – [配列で値を送信する] nullpon | ||
|---|---|---|---|
| 行 7: | 行 7: | ||
| [[http:// | [[http:// | ||
| + | ===== Form の selectボックスの作り方 ===== | ||
| + | セレクトボックスの項目を作るためには、配列、ハッシュ、配列の配列が使える | ||
| + | <code ruby> | ||
| + | <% form_for(@model) do |f| %> | ||
| + | <%= f.select :attr1, [" | ||
| + | <%= f.select :attr2, {" | ||
| + | <%= f.select :attr3, [[" | ||
| + | <% end %> | ||
| + | </ | ||
| + | |||
| + | <code html> | ||
| + | <form .... > | ||
| + | <select name=" | ||
| + | <option value=""> | ||
| + | <option value=" | ||
| + | <option value=" | ||
| + | <option value=" | ||
| + | </ | ||
| + | |||
| + | <select name=" | ||
| + | <option value=" | ||
| + | <option value=" | ||
| + | <option value=" | ||
| + | </ | ||
| + | |||
| + | <select name=" | ||
| + | <option value=" | ||
| + | <option value=" | ||
| + | <option value=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | optionsはArrayかHashで受け取る。 | ||
| + | |||
| + | Hashの場合、Hashのkeyがoptionのtext、HashのvalueがHTMLのvalueとなる。ハッシュのキーがvalueで、値がtextになりそうな感じだが、逆にすることで同じ値だが違うラベルのoptionを作成可能になっている。ハッシュのvalueはHTMLでもvalueと覚えておこう。 | ||
| + | |||
| + | ArrayのArrayの場合、0番目がoptionのtext、1番目がoptionのvalueとなる。 | ||
| + | |||
| + | hogesテーブルの一覧をセレクトボックスとする場合は、以下のようにする。 | ||
| + | |||
| + | <code ruby> | ||
| + | <% form_for(@model) do |f| %> | ||
| + | <%= f.select :attr4, Hoge.all.map{ |hoge| [ hoge.name, hoge.id ] } %> | ||
| + | <% end %> | ||
| + | </ | ||
| + | |||
| + | または、collection_selectを使ってプロパティを名前で指定できる | ||
| + | |||
| + | <code ruby> | ||
| + | <% form_for(@model) do |f| %> | ||
| + | <%= f.collection_select :attr4, Hoge.all, :id, :name %> | ||
| + | <% end %> | ||
| + | </ | ||
| + | |||
| + | ===== 配列で値を送信する ===== | ||
| + | |||
| + | 同じ名前で複数の値をsubmitする(fugas[]=1& | ||
| + | |||
| + | <code ruby> | ||
| + | <% form_for(@hoge) do |f| %> | ||
| + | <% Fuga.all.each do |fuga| %> | ||
| + | < | ||
| + | <% end %> | ||
| + | <% end %> | ||
| + | </ | ||
| + | |||
| + | パラメータ名を '' | ||
| + | |||
| + | ====== Rails 3 ====== | ||
| + | ===== エスケープしつつ改行をbrタグに置き換え ===== | ||
| + | Rails 3の場合は以下のヘルパを作成する | ||
| + | |||
| + | <code ruby> | ||
| + | def br str | ||
| + | html_escape(str).gsub(/ | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | Rails3のビューでは普通に出力すると自動的にエスケープされるが、html_safeで安全とマークされた文字列はエスケープされない | ||
rails/action_view.1258438325.txt.gz · 最終更新: (外部編集)