« 2007年10月 | トップページ | 2008年5月 »

2007年11月

onloadのスマートな書き方

bodyたぐにonloadを指定して地図を読み込む、というのがgoogle maps apiの標準的な使い方です。

でも、railsではlayoutにbodyタグを書くのが普通だから、ページによって地図を使うのか使わないのかを振り分けるためには、地図を使う場合とそうでない場合でlayoutを変えないといけない。

めんどくさ~ぃかんじです。

そこで良い方法を考えました。この方法はあまり使われて無いみたい。でもそこがちょっとこわいですけど。。。とりあえず、その方法を書いておきます。

1. body タグに以下のように記述

<body onload="<%= remote_function :url => { :action => 'startup' } %>">

2. controller で、インラインrjsを記述します。

  def startup
    render :update do |page|
      page.call :onLoad
    end
  end

まあ、単純にこれだけなんですけど、onloadで複数のjavascriptの関数を実行したい場合に、新たに関数を作る必要が無いってとこも、良いところですね。

この先は、rjsファイルを使って、google maps api 用の javascript をどんどん少なくしていく計画です。

acts_as_paranoid 再び

名前はあんまり好きじゃないんですけど。。act_as_paranoid。。

使ってくれるなってかんじがするので。

でも、とりあえず当面は論理削除にしておく必要があって、いちいちメソッドを書き換えるのは面倒なので、以前一回失敗したのに懲りず、またやってみました。

http://i-am.web777.net/2007/01/activerecord.html

インストールでいきなりつまずく。

ruby script/plugin install acts_as_paranoid

できません。なにも返ってきません。

っていうか、ruby script/plugin list で出てくるプラグイン少ない~もともとこんなもんだったか??

http://ar-paranoid.rubyforge.org/

によると、gem install acts_as_paranoid だとか。

インストールしてもなにもかわりませ~ん。ただmodelに書いた「acts_as_paranoid」がないって怒られるだけ。

で、やっとのことで成功しました。

ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/acts_as_paranoid --force

う~ん。。WEBを探してもなにも出てないってことはみんな簡単にやっちゃってるんだろうなぁ。。。

道はまだ遠いです。

« 2007年10月 | トップページ | 2008年5月 »