2006-03-22 (水) [長年日記]
■ [Rails] ファイルダウンロード時にIEでファイル名が化ける
やっぱりNKF使うの?
- ActionController::Streaming#send_file
send_file '/var/foo.bar',
:filename => NKF::nkf('-Ws', '日本語名.bar')
■ [Rails] Actionの途中で処理を終わりたい
ひとつのアクションでいろいろと分岐しちゃうと、 ぐちゃぐちゃになって
Render and/or redirect were called multiple times in this action.
なんて出ることがある。
そんなときは、renderした後に
return
を書く。
普通のメソッドだしね。
なので、こんな書き方もアリかもしれない
def some_action
# some action
if foo
render ...
return
end
if bar
render ...
return
end
render ... # This is default
end
ちゃんとアクションを分けろ、って感じだが。 条件文がネストするよりかはいいのかも。
■ [Rails] Details部分を送信すると順番がめちゃくちゃ
フォームの中身がこんなの。
<!-- 0 --> <input type="text" name="line_item[0][name]" value="hoge"> <input type="text" name="line_item[0][amount]" value="20"> <!-- 1 --> <input type="text" name="line_item[1][name]" value="fuga"> <input type="text" name="line_item[1][amount]" value="50"> <!-- 2 --> <input type="text" name="line_item[2][name]" value="foo"> <input type="text" name="line_item[2][amount]" value="70">
これを送ると、
Parameters: {"line_item"=>{"1"=>{...}, "0"=>{...},"2"=>{...}}
みたいに順番がバラバラ。
なので
Controllerでは、とりあえず
params[:line_item].sort!
してから処理する感じかなあ。どうなんやろ。

あと、DoubleRenderError 避けには performed? ですね。<br><br> render ... unless performed?<br><br>some_action の中からさらに呼び出したメソッドの中で<br>render してる時とかに便利な石村家の裏技です。<br><br>頻出するなら、ApplicationHelper で def render_once<br>とかやっちゃうのも楽しいかもかも。クゥ〜ン♪
line_item = @params["line_item"].inject([]){|result, (key,val)| result[key.to_i] = val; result }<br>とかですかね。
California job! Click here! http://blogs.ya.com/espozito/files/job.html california job
Woman wrestling - Click here! http://vsemoe.alkablog.com/ woman wrestling
Olive garden - Click here! http://neslezu.alkablog.com/ olive garden http://kazylya.alkablog.com/ womens shoes http://restoran.alkablog.com/ job search
Soma carisoprodol - MedlinePlus Drug Information: Carisoprodol http://blog.azpoint.net/blog/carispa soma carisoprodol
http://blog.azpoint.net/blog/paxa buy paxil