忍者ブログ
ブログツール、2007/11/06作成
[7] [8] [9] [10] [11] [12] [13
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

よく使うオプションのメモ。

width ウィンドウの幅。数値で指定。
height ウィンドウの高さ。数値で指定。
left ウィンドウの左位置。数値で指定。
top ウィンドウの上位置。数値で指定。
menubar メニューバーを表示するか否か。yesかnoで指定。
toolbar ツールバーを表示するか否か。yesかnoで指定。
location アドレスバーを表示するか否か。yesかnoで指定。
status ステータスバーを表示するか否か。yesかnoで指定。
scrollbars スクロールバーを表示するか否か。yesかnoで指定。
resizable リサイズ可能か否か。yesかnoで指定。

オプションは:popupオプションに食わせる配列の2番目にカンマ区切りした一連のテキストで入れる。

こんな感じ

<%= link_to 'hoge',
            :action=>hoge,
            :popup=>['new_window',
                        'width=500,
                         height=300,
                         menubar=no,
                         toolbar=no,
                         location=no,
                         scrollbars=yes,
                         resizable=yes'] %>
PR
あ~、わからん。

どっかに非常に簡単な答えがありそうなのに見つからない。

ActionHelper::select_datetimeで送ったパラメータの処理である。

datetime_select classname, attributename
でパラメータを送って、
受けるコントローラで普通にインスタンス変数に送り込んでやればきちんとTimeオブジェクトのインスタンスになるのに、select_datetimeの場合はどうしていいかわからん。

送られてくるのは、HashWithIndifferentAccessインスタンスなので、普通に代入してもだめ。
Time.nowやTime.localでやってみるもだめ。

仕方がないので、ハッシュをばらしてTime.localに食わせることに。

こんな感じ

view
<%= select_datetime hogetime, :prefix=>'hoge' %>
controller
@hogetime = Time.local(params[:hoge][:year].to_i,
params[:hoge][:month].to_i,
params[:hoge][:day].to_i,
params[:hoge][:hour].to_i,
params[:hoge][:minute].to_i,
params[:hoge][:second].to_i)
あ~、スマートさがない。
パラメータに配列やハッシュを使う方法は前に書いたけど、
応用編でもう一つ。

ちょっと考えればわかるけど、
ハッシュの配列にしたいとき。
<%= hidden_field_tag 'hoge[][:fuga]', value %>
<%= hidden_field_tag 'hoge[][:piyo]', value %>
こんなやつをループで回すだけ。
どこまで出来るかと、ハッシュに欠落があったときのことを考えるとどんなもんかなあ。
あと、'hoge[]'にインデックスを食わせるとどうなるか。

今度ちょっとやってみよう。
そこにシビれる、あこがれるゥ!! な配列のシャッフルの仕方。

array.sort_by{rand}

すてきすぐる。

元ネタはここ
よく忘れちゃうのでメモ。

select_tagにオブジェクト配列を食わせて、オブジェクトのname属性を表示して、IDを渡すのは常套手段。
というわけで、select_tagでoptions_for_selectを使うのはよくやるんですが、忘れちゃう。

hogeオブジェクトにidとname属性があったとする。
で、hogeオブジェクトの配列がhoge_arrayとして、

select_tag options_for_select(hoge_array.map{ |hoge| [ hoge.name, hoge.id ] } )

角括弧よく忘れるので注意。
nameが前です。valueは後ろね。

Rails APIドキュメントでは改行がうまくいってなくて読みにくいので抜粋。

Accepts a container (hash, array, enumerable, your type) and returns a string of option tags. Given a container
 where the elements respond to first and last (such as a two-element array), the "lasts" serve as option values and
the "firsts" as option text. Hashes are turned into this form automatically, so the keys become "firsts" and values
 become lasts. If selected is specified, the matching "last" or element will get the selected option-tag. Selected # may also be an array of values to be selected when using a multiple select.

Examples (call, result):
options_for_select([["Dollar", "$"], ["Kroner", "DKK"]])
<option value="$">Dollar</option> <option value="DKK">Kroner</option>

 options_for_select([ "VISA", "MasterCard" ], "MasterCard")
 <option>VISA</option> <option selected="selected">MasterCard</option>

 options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40")
<option value="$20">Basic</option> <option value="$40" selected="selected">Plus</option>

options_for_select([ "VISA", "MasterCard", "Discover" ], ["VISA", "Discover"])
<option selected="selected">VISA</option> <option>MasterCard</option> <option selected="selected">Discover</option>

NOTE: Only the option tags are returned, you have to wrap this call in a regular HTML select tag.
前のページ      次のページ
ついめ~じ
ブログ内検索
フリーエリア
サニーカメラ
Powered by Ninja Blog    template by Temp* factory    icon by MiniaureType

忍者ブログ [PR]