ActiveSupportのObject#with_optionsの使いどころ

個人的にActiveSupportが大好きなわけですが。

1.1で追加されたwith_optionsがRouting以外でどーもカッコいい使いどころがなーとおもっていたんですが

ruby code
  1. with_options(:if => :validate_password?) do |me|
  2. me.validates_format_of :password #...
  3. me.validates_length_of :password # ...
  4. me.validates_confirmation_of :password #...
  5. me.validates_presence_of :password#...
  6. end
  7.  

こんなキモイ使い方があった。もちろん、ActiveRecordのバリデーション。よくあるパターンで、パスワードはハッシュで保存しあって、createしたときやパスワード変更したときはバリデーションするんだけどそれ以外はしない、みたいなとき。

まぁ、やっぱり一番カッコいいのはto_procなんですけど。

07.27.08/12am

Typoでlive search文字化け

Typoでのlive search文字化けについては多くのブログで解決策が示されています。 live searchの文字化けを修正 Typo2.6.0リリースとLive Searhの日本語バグ

最新でもやっぱり文字化けしているわけで。 僕も直してみました。

ruby code
  1. Index: app/views/shared/_search.rhtml
  2. ===================================================================
  3. --- app/views/shared/_search.rhtml      (revision 850)
  4. +++ app/views/shared/_search.rhtml      (working copy)
  5. @@ -7,4 +7,4 @@
  6.      :loading => "Element.show('search_spinner')",
  7.      :complete => "Element.hide('search_spinner')",
  8.      :update => "search-results",
  9. -    :with => "'q=' + escape($F('q'))" -%>
  10. +    :with => "'q=' + encodeURIComponent($F('q'))" -%>
  11.  

という感じで1行直せばイケルはずです。(ブラウザはあまり確認してませんが・・・) あ、このファイルはテーマにも含まれてますので注意です。 てゆーかなんでencodeURIComponentじゃなくてescapeなんだろ・・・ ただこの方式だとキャッシュを再構築しないとダメなんでちょっとイヤだなー・・・。

07.27.08/12am

About

Author:yuin(http://inforno.net/)

文学部文化学科卒という生粋の文系趣味プログラマ。

主にRuby、Javascript、PHP、JAVA,Python,C,Scala,Schemeなどを使っています。今はPythonな感じかもしれない。今後作曲活動なども復活するかもしれない。

Pages