MerbでExpiresやCache-Controlを設定する場合、 アクションメソッドの中で、以下のようにすれば良いようです。

   1  headers['Cache-Control'] = 'public'
   2  headers['Expires'] = 3.days.from_now.utc.rfc2822

posted by Png genki on Thu 26 Feb 2009 at 18:41

Merbでリソースに:editのようなカスタムアクションを追加する場合、 以下のように:memberオプションを利用出来ます。

config/router.rb

   1  resources :materials, :member => {:download => :get}

これによって、GET /materials/:id/downloadが、Materials#downloadにmapされます。

posted by Png genki on Thu 26 Feb 2009 at 01:24

Merbでファイルアップロードのspecを書く場合には、 multipart_*系のAPIを利用出来ます。 以下は一例です。

   1  tmp = Tempfile.new('spec')
   2  path = tmp.path + ".txt"
   3  begin
   4    file = open(path, "w+")
   5    file.write "test"
   6    multipart_post(resource(:materials),
   7      :material => {:id => nil, :label => 'test', :file => file})
   8    tmp.close
   9  ensure
  10    file.close
  11    File.unlink path
  12  end

:content_typeはfilenameから推定されるので、拡張子をくっつけています。

posted by Png genki on Thu 26 Feb 2009 at 00:59
Contents
CacheのExpiresを設定する方法のメモ
resourceにアクションを追加する
MerbでファイルのアップロードのSpecを書く方法
Comments
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
tkawa: http://devcenter.heroku.com/articles/rails31_he... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ