Home > Rails Archive

Rails Archive

[Rails] carrierwave と fog で Amazon S3 をストレージとして使う

Rails のプラグイン carrierwave と fog を使って、Amazon S3 をストレージとして使う方法のメモです。

使用環境

  • Rails 3.2.1
  • carrierwave 0.6.0.beta
  • fog 1.1.2

carrierwave のインストール

gem install carrierwave

config の書き方

initializers に carrierwave.rb というファイルを作成し、以下のような設定を書きます。

#-*- encoding: utf-8 -*-
 
unless Rails.env.test?
  CarrierWave.configure do |config|
    config.storage                          = :fog
    config.fog_credentials                  = {
        :provider              => 'AWS',
        :aws_access_key_id     => ENV["AWS_S3_KEY_ID"],
        :aws_secret_access_key => ENV["AWS_S3_SECRET_KEY"]
    }
    config.fog_directory                    = ENV["AWS_S3_BUCKET"]
    config.fog_public                       = false
    config.fog_authenticated_url_expiration = 60
  end
else
  CarrierWave.configure do |config|
    config.storage = :file
  end
end

ENV["AWS_S3_KEY_ID"] にはユーザアクセスID、ENV["AWS_S3_SECRET_KEY"] にはシークレットアクセスキー、ENV["AWS_S3_BUCKET"] にはバケット名をそれぞれ設定する。

各値は、Amazon S3 の設定画面で確認できる。

この設定を行い、carrierwave で Uploader を作成して、ファイルをアップロードすると、S3 にファイルを置くことができる。また、S3 上のファイルの URL には、60秒のタイムアウト設定を掛けており、アプリからのアクセスでのみ参照可能なURLが表示されるようになる。(config.fog_public = false、config.fog_authenticated_url_expiration = 60 の設定)

jpmobile と kaminari を使ったときに invalid byte sequence in Shift_JIS が表示される対応

jpmobile と kaminari を組み合わせたときに invalid byte sequence in Shift_JIS が表示される問題の原因と対策です。

環境

Rails
3.0.7
jpmobile
0.1.6
kaminari
0.12.4

続きを読む - jpmobile と kaminari を使ったときに invalid byte sequence in Shift_JIS が表示される対応

kaminari の paginate_array が便利

will_paginate に代わるページングのライブラリ、kaminari ですが、ページングが scope 扱いで配列に対して使えなかったのでちょっと不便なときがあったのですが、なんと paginate_array なるものを発見しました。

環境

kaminari
0.12.4

続きを読む - kaminari の paginate_array が便利

Rails のコントローラの中で View の画像URLを取得する方法

コントローラの中で、ビューの image_tag 等で表示される画像の URL を取得したい時があります。

そんな時は view_context が使えます。

環境

Rails
3.0.7
Ruby
1.9.2-p180
Paperclip
2.3.11

続きを読む - Rails のコントローラの中で View の画像URLを取得する方法

Ruby から Gmail を受信する(マルチパート編)

Ruby1.9.2 で mail を使って Gmail から添付ファイルやメール本文を受信する方法のメモです。

かなり力技的なところがあるので、もっといいプログラムになると思いいますが、メモということで。

バージョン

Ruby
1.9.2
Rails
3.0.4
mail
2.2

続きを読む - Ruby から Gmail を受信する(マルチパート編)

[Rails] ActiveRecord でツリー関係の関連を定義する

Ruby on Rails で、ActiveRecord を使ってツリー関係の関連を定義する方法のメモです。

ツリー関係を表す関連にはひとつのテーブルで表す方法と関連テーブルを使って表す方法とがありますが、今回は関連テーブルを使ってツリー関係を表す方法のメモです。

環境は Rails3.0.1、ActiveRecord3.0.1 で確認しています。

続きを読む - [Rails] ActiveRecord でツリー関係の関連を定義する

[Rails] RSpec でコントローラのテストを記述する例

Ruby on Railsで、RSpec を使ってコントローラのテストをしたテストコードの例を載せておきます。

環境は、Ruby on Rails3、Ruby1.9.2 を使っています。RSpec の使い方の参考になれば幸いです。

続きを読む - [Rails] RSpec でコントローラのテストを記述する例

[Rails3] Rails3 がリリースされたのでまとめ

ついに、2010年8月30日(公式では Aug 29, 2010 ってなってるけど)に、Rails3 がリリースされました。

Ruby1.9.2 も2010年8月18日にリリースされているので、今後は Ruby1.9.2 と Rails3 での開発が増えてくる予感です。個人的には、Ruby1.9 から文字エンコーディング周りが大幅に変わっているので、View テンプレートにマジックコメントをいちいち書かないといけないのがめんどくさかったり。。

ということで、Rails3 系の記事の簡易まとめメモです。

続きを読む - [Rails3] Rails3 がリリースされたのでまとめ

Index of all entries

Home > Rails Archive

Search
Feeds
access

access counter

Return to page top