内容へ移動
Cat Paw Software
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
rails:action_view
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== ActionView ====== ===== ビューで使えるヘルパーメソッド ===== ==== truncate ==== [[http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#M001743|truncate]]は、30文字をこえた文字列では、前27文字に ... を付けて返すメソッド。30文字以下のときは何もしない。なんと多バイト文字にも対応している。 ==== cycle==== [[http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#M001753|cycle]]は、リストを縞々にしたい時など、一行おきにhtmlのクラスを変える用途で使える便利メソッド ===== Form の selectボックスの作り方 ===== セレクトボックスの項目を作るためには、配列、ハッシュ、配列の配列が使える <code ruby> <% form_for(@model) do |f| %> <%= f.select :attr1, ["a", "b", "c"], { :include_blank => "選んでね" }, { :class => } %> <%= f.select :attr2, {"a" => "1", "b" => "2", "c" => "3"} %> <%= f.select :attr3, [["a", "1"], ["b", "2"], ["c", "3"]] %> <% end %> </code> <code html> <form .... > <select name="model[attr1]"> <option value="">選んでね</option> <option value="a">a</option> <option value="b">b</option> <option value="c">c</option> </select> <select name="model[attr2]"> <option value="1">a</option> <option value="2">b</option> <option value="3">c</option> </select> <select name="model[attr3]"> <option value="1">a</option> <option value="2">b</option> <option value="3">c</option> </select> </form> </code> 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 %> </code> または、collection_selectを使ってプロパティを名前で指定できる <code ruby> <% form_for(@model) do |f| %> <%= f.collection_select :attr4, Hoge.all, :id, :name %> <% end %> </code> ===== 配列で値を送信する ===== 同じ名前で複数の値をsubmitする(fugas[]=1&fugas[]=2 のようなパラメータを送信したい)場合の方法。例えば、HogeとFugaが1対多、または多対多の関連で、チェックボックスをオンにしたら関連を作成する場合(関連先の情報は予め作成済みである) <code ruby> <% form_for(@hoge) do |f| %> <% Fuga.all.each do |fuga| %> <li><%= check_box_tag "hoge[fugas_id][]", fuga.id, @hoge.fugas.exists?(fuga), { :id => "hoge_fugas_#{fuga.id}" }%><%= fuga.name %> <% end %> <% end %> </code> パラメータ名を ''object_name[collection_names_id][]'' としておくと。''object.update_attributes'' でhas_many(through)のデータの関連付けが更新される。 ====== Rails 3 ====== ===== エスケープしつつ改行をbrタグに置き換え ===== Rails 3の場合は以下のヘルパを作成する <code ruby> def br str html_escape(str).gsub(/\n/, "<br>").html_safe end </code> Rails3のビューでは普通に出力すると自動的にエスケープされるが、html_safeで安全とマークされた文字列はエスケープされない
rails/action_view.txt
· 最終更新:
2011/11/16 00:40
by
nullpon
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ