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

#Rails

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

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

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

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

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

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

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

sidekiq3.0.1で確認。

[rails]fragment cacheを使ってみる

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

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

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

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

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

wheneverの設定をcronに反映するコマンドメモ

Rubyでcronのバッチを作成したい場合に whenever をよく使うのですが、cron反映コマンドを毎回忘れて調べているので書き留めておきます。

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

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

Railsでsessionの有効期限を設定

Ruby2.0, Rails4で確認

active_adminでカスタムfilter(select box)を設置する

active\_adminで管理画面を作る際にデフォルトでfilterを作ってくれますが、select boxを使いたい部分がテキスト入力になっていたりします。

Rails4でTwitterStreamingAPIを使う その2

Ruby2.0,Rails4で確認

Rails4でTwitterStreamingAPIを使う その1

Ruby2.0, Rails4で確認

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

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

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

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

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

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

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

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

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]carrierwaveに画像サイズ制限を追加する

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

Railsで定数を一元管理する(config)

Ruby2.1.4, Rails4.1.7で確認

[rails]Active Adminの編集画面に登録済みの画像プレビューを表示する

先日のActiveAdminまとめに続き今回もActive Adminネタです。

Hello World Tire (Railsにtireを導入する)

RUby2.0, Rails4で確認

[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]コード品質の静的解析gem rails_best_practicesを使ってみる

パーフェクトRuby on Railsに載っていたコード品質の静的解析gem rails\_best\_practicesを使ってみました。

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

Rails3.2で確認

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

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

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

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

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

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

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

Ruby2.0, Rails4で確認

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

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

[Rails]carrierwaveのcallbackをskip

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

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

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

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

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

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

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

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

Ruby2.0, Rails4で確認

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

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

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

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