忍者ブログ
ブログツール、2007/11/06作成
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10
×

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

フォームフィールドで、IMEのON/OFFをコントロールする方法。

CSSだけで出来ちゃう。

ime-mode属性

auto 自動
active IMEオン (日本語入力モード)
inactive IMEオフ (英数字入力モード)
disabled IME使用不可 (英数字入力モード)

実に簡単。

PR
いつも使ってるIDEはAptanaRadRails。
マイナーアップデートは割とマメに当てています。
結構細かいバグとか、使いにくいところが直ってたりするんで。

で、昨日(2009/03/24)アップデートがあったんですが、
忙しいのでスキップしてました。

で、今日はそれほどでもなかったんで、アップデートすると・・・・

RHTMLエディタがぬるぽしてました。

トホホ・・・

エディタが使えなかったら仕事できないやん、
と、しょぼしょぼして、バグトラックとか追いかけてみるとすでにあがってました。
Criticalで。

しばらく途方に暮れてみて、IDE使わない仕事とかもしてたんですが、
それも終わっちゃって、あ~もうダウングレードするしかないか、
と。

やり方わかんね~、と思ってググってると、
Helpのメニューからやれと。

で、やってみました。

Help->Software Update->Manage Configurationで開くウィンドウに、
Revert to Previewsがあるので、
そこをクリックすると、
アップデート履歴が表示され、日付をクリックしてFinishでリブート。

ものの数秒で終わっちゃいました。

簡単すぎ。

途方に暮れていた俺はアホかと。
へこんでいるところに更にへこんうじゃいました。

まあ、こんなに簡単に戻せるなら安心してアップデートできるよね!
と前向きに考えるのでした。


前の記事でも書いた、render_componentにまつわる問題を解消すべく、
ヘルパを作ってみた。

render_componentの問題点は、以下の二つ。

1.request.xhr?で必ず読み出した元Viewのrequest.xhr?の結果が返される。
2.全ての処理が終わってからリクエストが返るので、レンダリングが遅い。

render_componentでは、
1.viewファイルを解釈
2.render_component登場
3.コントローラで処理
4.コントローラのrender :partialをレンダリング
5.レンダリング結果をViewに差し込む
6.次の行を解釈
という風に、とにかく全ての処理が流れてしまう。

で、2.~5.までの処理をとにかく速く終わらせて戻し、
実体部分は非同期で別に呼び出す方向で考える。

というわけで、ヘルパにdelayed_render_componentを作ってみた。

  def delayed_render_component(options)
#    code = "Element.update('#{options[:update]}','#{render :partial=>'common/progressing'}')"
    code = "new Ajax.Updater(#{remote_function(options)})"
    javascript_tag(code)
  end
 
使い方はlink_to_remoteを参照。
出来れば、Ajax.Updaterが戻る迄の間、プログレスアイコンでも表示したい所なんだけど、
なかなかうまくいかない。

というのも、ターゲットの書き換えだけならまだしも、
書き換えではなく、書き足し(要素を最後に挿入(:position=>'bottom'とか))などしたときに、
Element.Updateを使えないから。

対象の書き換えだけなら、
コメントアウトした行を復活させるだけでいいんだけどねえ・・・

書き足しの時には、
1.プログレスアイコンを表示するエレメントを挿入
2.Ajax.Updaterが戻って、エレメントが挿入される
3.1.のエレメントを削除

というプロセスを経なければならないという・・・

はじめから要素にランダムなIDを振ればよいかというと、
レンダリングされた要素の中身でIDを対象としていろいろ操作するのでそうも行かない。

何かいい解決方法を考えなくっちゃね。
よく忘れちゃうのでメモ。

acts_as_list

first?
(同じ親のうちで)リストの一番上か?

last?
(同じ親のうちで)リストの一番下か?

move_heigher move_higher
上へ移動

move_lower
下へ移動

move_top
一番上へ移動

move_bottom
一番下へ移動

heigher_item
自分の一つ上のアイテム

lower_item
自分の一つ下のアイテム



MVCモデルでORマッピングをするとき、
値の型が可変であるときの処理ってちょっと難しい。

まあ、基本的には文字列で保持しておいて、
インスタンス化するときにキャストしてやれば問題ない。

特にRubyみたいな動的型付け言語の場合。

が、DBの中に文字列で格納していると問題が起こることがある。
そう、ソートするときだ。

文字列の時は基本的に問題ない。

しかし、整数や小数の時が問題。

で、整数の時は別に問題ない。

CAST(column ,TYPE)でキャストしてやれる。

問題なのは小数の時だ。

MySQLのCASTの場合、
数字以外の文字列が登場するまでの数字を整数に直しているみたいだ。
たとえば、
'1.0002'->1
'43.3'->43
'59.8'->59
という感じだ。

となれば、ソートしようとしたとしても、小数点以下の値は評価されないという困ったことになる。

頭を悩ませて調べてみた。
すると、リファレンスに以下の一文が。

>算術演算でストリングを使用している場合、これは浮動小数点数に変換されます。


試しにやってみた。

SELECT (string_value + 0.01 -0.01) FROM table;

'1.0002'->1.0002
'43.3'->43.3
'59.8'->59.8

まんまとDECIMALで帰ってきましたよ。

ビバ暗黙キャスト。

前のページ      次のページ
ついめ~じ
ブログ内検索
フリーエリア
サニーカメラ
Powered by Ninja Blog    template by Temp* factory    icon by MiniaureType

忍者ブログ [PR]