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

#Rails

rails4でアプリ作成後にDBを使わないようにしたい

あまりないケースではありますがメモ。

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

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

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

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

[mysql][rails]Character set 'utf8mb4' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file

mysql5.1が動いていた環境をmysql5.6にアップデートした後、rake db:createで utf8mb4のDBを作成しようとしたところ以下のエラーが発生

[rails][rspec]特定のテスト時のみenvを変更したい場合

RSpecで特定のテスト時のみenvを変更したいということがあったのでやってみました。

[rails]Errbitでdevelopment環境でも通知したい

Railsのエラー管理に便利な errbitですが、デフォルトだとdevelopment環境では通知が来ない設定になっています。

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

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

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

sidekiq3.0.1で確認。

[rails]Springを使ってRailsコマンドを高速実行

Ruby2.1, Rails4.0.3で確認

[rails][rspec]controller testでcookieのテストをする

rspecのcontrollerテストでcookieのテストを行いたい場合、 `response.cookies['key']` でcookieの内容を取得できます。

[rails]国際化対応でlocaleを省略したURLのrouting設定

タイトルだけだとよくわからないですね サンプルサイトとして、

[rails][mysql]Can't connect to local MySQL server through socket '/tmp/mysql.sock'

Railsアプリを起動しようとした際に `Can't connect to local MySQL server through socket '/tmp/mysql.sock'` というエラーが発生。

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

Ruby2.0, Rails4で確認

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

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

[rails]fragment cacheを使ってみる

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

[Rails]carrierwaveのcallbackをskip

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

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

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

Railsで小数点を含むURLのrouting設定

Rails3.2で小数点を含んだURLのrouting設定をしようとした際に、デフォルトの設定だとRoutingErrorになってしまいました。

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

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

[rails]simple_form使用時にinputフォームのデフォルト値を設定する

単にvalueを指定すればできるかなと思ったのですが、それではダメでinput\_html内のvalueを指定する必要がありました。

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

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

[rails]capistrano実行時にユーザ入力によって動作を変える

capistranoでaskメソッドを使うとユーザ入力を受け付けることが可能になります。

[rails]ページにアクセスするとリクエストが2回飛んでしまう現象にハマった

開発中のRails環境でページにアクセスすると、なぜかリクエストが2回発生する現象に遭遇しました。

[rails]ActiveModelを使ったフォームのラベル名を変更する

DBには保存はしないけれど、ActiveRecordオブジェクトのようにvalidationを使いたい、という場合にActiveModelが使えます。

[rails]Rails4.1でrails new後にアプリ名を変更する

Rails 4.1.7 で確認 Rails newでアプリを作った後に、アプリ名を変えたいと思うことが時々あります。

[rails]国際化対応時にviewごとにlocaleファイルを持つようにする

localeファイルをどうやって管理しようかなと思った時に、フロントエンドのエンジニアに相談したら「viewごとにlocaleファイルを置きたい」という要望をもらったので分けてみました。

[rails]strip_tagsをcontrollerで使う場合

テンプレートのhelperメソッドにhtmlタグを除去するstrip\_tagsメソッドがあります。

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

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

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

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

Rails Application Templateを使ってみた

やろうやろうと先延ばしにしていたRails Application Templateを使ってみました。

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

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

[rails]carrierwaveを使った画像投稿APIをRspecでテストしてみる

rails 4.1.7, rspec 3.1.7 で確認 先日、

[rails]find_byでもActiveRecord::RecordNotFoundをraiseしたい

ActiveRecordでfindメソッドに存在しないidを渡すとActiveRecord::RecordNotFound exceptionがraiseされます。

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

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

Railsで一時的にbefore_saveをskip

Rails3.2で確認 昨日の Railsで一時的にupdated\_atの更新をskip に続いて、 今回は、一時的にbefore\_save等のcallbackをskipする方法です。