いつも忘れるのでメモ。

mailerオプション

script/generate mailer class_name method_name

   1  $ rails -v
   2  Rails 2.0.2
   3  $ script/generate mailer TestMailer welcome
   4        exists  app/models/
   5        create  app/views/test_mailer
   6        exists  test/unit/
   7        create  test/fixtures/test_mailer
   8        create  app/models/test_mailer.rb
   9        create  test/unit/test_mailer_test.rb
  10        create  app/views/test_mailer/welcome.erb
  11        create  test/fixtures/muji_mailer/welcome
viewは*.erb形式なんですね。

添付とbodyにURLを追加する時の注意

  • URLをbodyに渡すにはurl_forが使えます。
  • attachmentはメソッドなので@はいりません(ココはまりました)。
  • ファイルを複数添付の時はattachmentを複数回呼べばOKです。
       1      @body = {:sender => "satoko",
       2        :message => "welcome",
       3        :s21g_url => url_for(:host => "www.s21g.com", :controller => "top", :action => "index")
       4      }
       5  
       6      attachment :content_type => "image/png",
       7      :body =>  File.read("an-image.png"),
       8      :filename = "test.png"
       9  
      10      attachment :content_type => "image/png",
      11      :body =>  File.read("an-image2.png"),
      12      :filename = "test2.png"
    

generatorのmailerヘルプ

下記でコマンドでヘルプが表示できます

   1  $ script/generate mailer --help

Refs

http://wota.jp/ac/?date=20050731
http://rails-recipebook.g.hatena.ne.jp/rrbk/?word=*%5BMail%5D

posted by Png satoko on Thu 17 Apr 2008 at 11:14

babieさんのGoogleAppEngineに関するtweetを見ているうちに、これ使うとGAEでしか動かないアプリしかかけない(!)ということがわかった。したらmasuidriveさんも同じことを書いていた。さらに面白かったのがコレ。

 これ専用にガリガリとアプリを書いて、サービスするのは罠だと思うけど、自分用WikiEngineをインストールしたり、Plaggerを常駐させておくのには便利そう。
http://blog.masuidrive.jp/index.php/2008/04/08/google-app-engine/

GAEをHomeユースに特化させてはどうか!Homeメディアサーバとかもちらっと考えるので、バックグランドプロセスとか常駐とかをちょちょっと動かせるHomeサーバ。

あと、サービスの一部だけに使うとか。検索だけBigTableです、とか。

posted by Png satoko on Fri 11 Apr 2008 at 05:46

namurokさんの発言を偶然見つけて、TokyoCabinetというものを知りました。Rubyからも使えるということなので、RailsPluginとかもあるのかなぁ。使ってみたいですね。 この話をしたら、瀧内さんがS3, BigTableにこれ、RDBはスケールできないってことですかねーと言っていた。ふむふむ。

mamoruk: @akf TokyoCabinet は Python, Perl, Ruby バインディングありますよ。8000万レコードまでは普通に使っています(億の単位のレコード入れるには少しパラメータの調整が必要)。メモリに乗れば引くのも速いです。
http://twitter.com/mamoruk/statuses/785574490

ぐぐた。

オープンソース・ソフトウェアはTokyo Cabinet、日本発のDBM実装だ。(中略)
Tokyo CabinetはあのHyper Estraierの作者である平林幹雄氏(以下mikio氏)によるソフトウェアで、Hyper Estraierの内部で利用されているQDBMよりも高速に動作するらしい。前方一致や数値の範囲検索、さらにトランザクションも利用できる。
http://www.moongift.jp/2007/11/tokyo_cabinet/

posted by Png satoko on Fri 11 Apr 2008 at 05:28

いつもrailsで迷うんだけど、rootのコントローラって何がいいかしら。 37sの人はwelcome、has_manyの人はhomeを使うみたい。さっきtweetしてみたら、@shachiさんがtopとreplyしてくれた。

  1. top
  2. home
  3. welcome

上記の順でいいと思いました。
welcomeはindexだけだといいけど、aboutにも使おうとすると名前が合わない気がするし、homeだとみんなのというより自分だけ・personalな雰囲気がする/もあるし、topにはそれがなくてrootという感じもする。
今のprojectもtopしてみようかしらん!

posted by Png satoko on Mon 7 Apr 2008 at 02:19

http://livedocs.adobe.com/air/1/devappshtml/help.html?content=SQL_20.html#1085042

自分用で訳してみたのですが、よく知られたプラクティスが多かったように思います。

  • Pre-create database connection
    アプリ立ち上げ時に open()/openAsync()しておく

  • Reuse database connection
    作成したconnectionはアプリ全体で使いまわす

  • Favor asynchronous execution mode
    同期と非同期をうまく使いこなそう。データを1行追加するようなINSERTはsynchronousでやればいいが(ほとんど時間がかからないので)、複雑なSELECTの場合asynchronousのほうがいいかもしれない(でないとユーザはレスポンスが帰るまでユーザはなにもできない)。

  • Use separate SQL statements and don't change the SQLStatement's text property.
    4つのSQL処理があったら、4つのSQLStatementを作ろう。

  • Use statement parameters
    Statement文字列に入力データを入れないで、必ずパラメータを使ってすること。

  • Use constants for column and paramter names
    スペルエラーを防ぐため、カラム名を持つ文字列定数を作成する。パラメータ名を持つ同様のものも作ってもよい。

posted by Png satoko on Mon 7 Apr 2008 at 00:12