忍者ブログ
ブログツール、2007/11/06作成
[41] [40] [39] [38] [37] [36] [35] [34] [33] [32] [31
×

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

link_toやlink_to_remote、っていうか、
url_forにハッシュをつけることで、パラメータを渡せることは周知の事なんだけど、これに配列を渡せないか、
というのが今回のお題。

前に書いたエントリは真っ赤な嘘でした。ごめんなさい

フォームヘルパ系のパラメータであれば、
パラメータ名に[]をつけてやれば配列で渡せるのは
このエントリで書いたとおり。

が、前に書いたエントリのように、
<%= link_to 'hoge', :controller=>'hoge', :action=>'fuga', :piyo=>['hoge','fuga','piyo'] %>
なんてやっても、
params[:piyo]は配列で帰ってきてくれない。

で、どうなっているかと言えば、
配列を.join('/')で処理したのと同じものがパラメータに入ってくる。
上の例でいうと、
params[:piyo] > "hoge/fuga/piyo"
という感じ。

で、配列で取得したいときは、単純にsplit('/')すればいい。

ただ、気をつけたいのは[/]をエスケープしてくれないこと。
たとえば、
:hoge=>['ho/ge', 'fu/ga', 'pi/yo']
で渡すと、パラメータは
"ho/ge/fu/ga/pi/yo"ではいってきちゃう。

この条件さえクリアすれば、普通にsplitで配列に戻せる。

なかなか面倒です。

PR
この記事にコメントする
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (チェックを入れると管理人だけに表示できます)
この記事へのトラックバック
この記事にトラックバックする:
ついめ~じ
ブログ内検索
フリーエリア
サニーカメラ
Powered by Ninja Blog    template by Temp* factory    icon by MiniaureType

忍者ブログ [PR]