AASMをアップデートしたら、テストで例外が出るようになった。
正しくない状態遷移を行うと例外を返すようになったらしい。
AASMの初期化オプションに:whiny_transitions => falseを与えてやればいい。
以下は例。

aasm :column => :aasm_status, :whiny_transitions => false do
  state :prepared, :initial => true
  state :queued
 state :accepted
...
  event :accept do
    transitions :to => :accepted, :from => [:queued]
  end
...
end

この例だと、whiny_transitionsがtrueならpreparedから直接accept!とかすると例外を投げる。
以前は単に遷移せずpreparedのままだった。

まぁ、例外を投げるのが正しい動作だとは思う。作者もそう言ってるみたい
あくまで既存のコードをいじりたくない場合ってことで。

default_scopeを外そうとしてunscopedしてからkaminariのpageオブジェクトにすると奇妙なことになる。

class Item < ActiveRecord::Base
  default_scope where(:closed => nil)
  paginates_per 20
end
> Item.scoped.to_sql
# => "SELECT `items`.* FROM `items` WHERE `items`.`closed` IS NULL"
> Item.scoped.page.to_sql
# => "SELECT `items`.* FROM `items` WHERE `items`.`closed` IS NULL LIMIT 20 OFFSET 0"
> Item.unscoped.to_sql
# => "SELECT `items`.* FROM `items`"
# ここまでは想定通り
> Item.unscoped.page.to_sql
# => "SELECT  `items`.* FROM `items` WHERE `items`.`closed` IS NULL LIMIT 20 OFFSET 0"
# えええなんで?

Rails3.0.10で確認。3.1.3だと直っているので、3.0系のみの問題かな。

回避方法探してstackoverflow漁ったらamatsudaさんが回答してた

> Item.unscoped{ Item.page.to_sql }
# => "SELECT  `items`.* FROM `items` LIMIT 20 OFFSET 0"

3.0系でdefault_scopeは注意した方がいいよねってことで。

faviconを設定してないとログに404がずらずら並んで鬱陶しいですね。

そんな時はfaviconを適当に作って、headerに
<%= favicon_link_tag 'favicon.ico' %>
とか書いておけばOK。
rails3.1ならファイルはapp/assets/imagesに置く。

なお、faviconのために毎回インスタンス食われるのはもったいないので、前の記事を参考にnginxで静的ファイルを返すようにしておくのが良いかと。

Facebookアプリからアルバムに投稿する方法。
通常のwall postと違って目立つので、アルバムに投げるのが流行ってたりする。
ちなみにpermissionはpublish_streamでOK。

FBGraphにはアルバムに投げるメソッドがあるようだけど、RestGraphにはないため自分で実装しなければならない。
既にやってる人がいるので真似させてもらった。以下のURL参照。

http://forrst.com/posts/post_a_photo_to_the_fb_graph_api_with_ruby-CSa

multipart-postとmyme-typesのgemが必要。
なお、URLを投げても拾ってくれないので、動的に生成される画像についてはローカルにいったん保存してアップロードする必要がある。