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 · 最終更新: 2011/04/16 17:08 (外部編集)