hello-world
webエンジニアのメモ。とりあえずやってみる。

#Rails

[rails]ELB使用時にヘルスチェック用のアクションを作成する

ELBにrailsアプリをぶら下げる場合、railsアプリが落ちたらELBから外れてもらいたいです。

[rails]carrierwaveで保存した画像のurlを取得する

carrierwave 0.10.0 で確認 imageカラムにcarrierwaveで保存した画像を保存している場合、デフォルトのままだとだとurlメソッドを実行してもpublic以下のパスのみで http://~ が設定されていません。

[rails]base64エンコードされた画像をcarrierwaveに保存する

Ruby 2.1.4, Rails 4.1.7 で確認 前回はcarrierwaveを使ってPOSTされた画像ファイルの保存を行うAPIを作ってみました。

[Rails]find_or_create_byとfind_or_initialize_by

Rails4で確認。

RSpec3で真偽値のテストをする場合の注意点

RSpec3の場合、be\_true, be\_falseによる真偽値のテストは使えなくなりました。

[rails]carrierwaveを使って画像を保存するAPIサンプル

Ruby 2.1.4, Rails 4.1.7 で確認 画像アップロード機能を作成する際に carrierwaveをよく使うのですが毎回調べているので基本的な設定部分のメモを残しておきます。

[ruby][vim]Rubocopを使ってコードをチェックする

rubyのコーディングルールをチェックしてくれる rubocopをvimから自動実行するように設定しました。

[rails]unicornでpryを使う

先日、pryでデバッグする という記事を書きましたが、こちらはrails server(フォアグランド)でアプリを立ち上げた際のデバッグ方法でした。

[rails]YouTube動画の削除チェックを行うRakeタスクを作ってみる

YouTubeは様々な理由で動画が削除されてしまうことがあるので、YouTubeを使ったサービスでは、動画の削除チェックが必要になると思います。

[rails][mysql]テーブルのカラムにlongtextを使用する

マイグレーションファイルに:limitを指定すれば型を変更できました

[Rails]migration時にbigintを使用したい場合

Railsでmigrationを行う際に、intではなくbigintを使用したい場合は:limitを指定します。

[rails][rspec]database-cleanerを使ってredisのテストデータを削除する

今更ながら最近ちゃんとredisを使い始めました。

[rails]production環境のdatabase.ymlでハマったこと(環境変数設定)

本番環境のdatabase.yml設定はセキュリティの観点からファイルにパスワードを直接記述するのではなく、以下のように環境変数経由で取得するようになっていますが、この環境変数の設定にハマりました。

[rails]whenever設定時にSettingsを呼びだそうとしたらハマった(capistrano)

cron設定を管理するのに便利なgemといえば wheneverですね。

[Rails]carrierwaveのcallbackをskip

Railsで画像アップロード機能を作る際に欠かせないgemと言えば carrierwave ですが、save時にcarrierwaveのcallbackをskipしたい場合の対応方法をメモしておきます。

Railsでupdated_atのみ更新したい場合

Rails3.2で確認 updated\_atのみ更新したい場合、モデルを取得した後にsaveしただけではupdated\_atは更新されません。

RailsでOmniauthを使ってTwitterログインする

Ruby2.0, Rails4で確認

[rails][passenger]Redmineの初回アクセスが遅いのをなんとかする

プライベート用に使っているRedmineが異常に遅いです。

Railsで一時的にupdated_atの更新をskip

Rails3.2で確認

[Rails]bundle installを並列で実行する

bundle installの初回実行時にすごく時間がかかっていたのですが、最新のBundler(version 1.5.1)では並列実行ができるようになったので試してみました。

Hello World Resque (Railsにresqueを導入する)

Ruby2.0, Rails4で確認

[rails]carrierwaveに画像サイズ制限を追加する

Ruby2.1, Rails4.1.1で確認 carrierwaveを使って画像アップロードをする際に、画像サイズの制限をかけたい場合のメモ

Mysql2::Error: Specified key was too long; max key length is 767 bytes limit

railsでactive\_adminのmigrationを行う際に以下のようなエラーが出ました

[rails][active_admin]paranoiaで論理削除したデータを管理画面で一覧表示する方法

migrationファイルにdeleted\_atを追加することで、手軽に論理削除を実装できる paranoia

[Rails]日付と時間の入力フォームにDateTimePickerを使う(bootstrap3-datetimepicker-rails)

Ruby2.1.0, Rails4.1で確認 フォームで日時を入力する際に、カレンダーを表示して入力サポートをするDateTimePickerを導入したかったので調べてみました。

[rails][carrierwave]jsでカメラ画像を直接アップロードする場合のextension_white_list設定

carrierwave を使うと、extension\_white\_listメソッドで拡張子によるアップロードファイルの制限をかけることができます。

[Rails]migrationで外部キーを設定する際に、参照先テーブルと異なるカラム名をつけたい場合

migration時に外部キーを設定する場合、referencesを使いますが、参照先テーブルと異なるカラム名をつけたい場合はどうしようと思い調べてみました。

[ruby][rails]sidekiqのnamespaceにハマった

sidekiq3.0.1で確認。

[rails]fragment cacheを使ってみる

fragment cacheを使うとテンプレートの一部を部分的にキャッシュすることが可能になります。

[ruby][rails]pryでデバッグする

今更ながらpryを使ったデバッグの便利さに感動したのでメモ

[rails]bodyにclassを付けて特定のページでのみjsが動作するようにする

Asset Pipelineを使用するとjsやcssを結合してくれます。

[s3][ruby]静的ウェブサイトホスティングしたサイトのTwitter Cardsが表示されない場合の対応

先日、S3の静的ウェブサイトホスティングを使ってサイト公開を行った際に、ページ表示やFacebookのOGP表示は問題なくできるのにTwitter Cardsだけ表示されない、という現象が発生しました。

ActiveRecord オブジェクトをコピーする

## dupを使ってコピーする

Rails4でTwitterStreamingAPIを使う その1

Ruby2.0, Rails4で確認

Rails4でTwitterStreamingAPIを使う その2

Ruby2.0,Rails4で確認