• 更新日: 2017年2月8日
  • Rails

Rails で AMP(Accelerated Mobile Pages) に対応するための、Rails プラグイン gem を作成して公開しました。設定や使い方は、GitHub の README に詳しく書いています。サポート対象の Rails バージョンは、4.1, 4.2, 5.0 です。

rails_amp | RubyGems.org | your community gem host
takafumir/rails_amp: RailsAmp is a Ruby on Rails plugin for AMP(Accelerated Mobile Pages).

AMP についての詳細、ドキュメント等は以下。

Accelerated Mobile Pages Project

続きを読む

  • 更新日: 2017年2月3日
  • Rails

Rails で request.url と request.original_url の違いが気になって、ActionDispatch ソースコードを少し読んでみました。結果としては、両者には実装方法に違いがあるのが分かった。

ビューに…

と書くなどして確認すると分かりますが、request は ActionDispatch::Request クラスのオブジェクトです。

— 環境 —
Rails 5

request.url

request.url は ActionDispatch::Http::URL モジュール(action_dispatch/http/url.rb)で実装されています。

rails/url.rb at master – rails/rails

この ActionDispatch::Http::URL モジュールは、ActionDispatch::Request クラスで include されています。

続きを読む

JavaScript を書いていて HTML のコメント要素を取得したいケースに遭遇しました。HTML のコメント要素とは…

のような HTML 中のコメントタグ要素のこと。これまで JavaScript でコメントタグを取得したいという機会がなく、知らなかったので調べました。特定要素配下のノード一覧を取得した後に、nodeType を 8(COMMENT_NODE)と指定して抽出することで、取得したノード一覧のうちコメントのノードのみを取得することができます。

続きを読む

Rails アプリケーションを動かしている Nginx サーバーの production 環境で、502 エラーが発生したので原因を探りました。

Nginx のエラーログを確認

まずは、Nginx のエラーログを確認しました。

上記のように、

というエラーメッセージが沢山記録されていた。訳しますと…

「upstream からレスポンスヘッダーを読み出す際に、upstream が大きすぎるヘッダーを送信しています」とのことで、クッキーのデータが大きすぎたのが原因っぽい。

続きを読む

WordPress で運営しているブログを Twitter Bootstrap を用いて、レスポンシブデザインに対応する Tips です。Bootstrap を用いると、比較的簡単に WordPress をモバイル対応のレスポンシブデザインにできます。

Bootstrap The world’s most popular mobile-first and responsive front-end framework.

— 環境 —
WordPress 4
Twitter Bootstrap 3.3.7

Twitter Bootstrap ダウンロードと設置

Twitter Bootstrap をダウンロードして、以下に設置します。

WordPress テーマを git 管理していれば、lib フォルダを .gitignore に追加。

.gitignore

続きを読む

  • 更新日: 2016年12月6日
  • Rails

whenever は、cron ジョブを Ruby のシンタックスで簡潔に書くことができる gem です。whenever を利用すれば、定期的に cron で実行したいバッチ処理等を作成しやすく、また管理しやすくなります。使い方も簡単です。

https://github.com/javan/whenever

この記事は、Rails プロジェクトでの whenever 導入から、cron ジョブの作成・実行までの流れの説明となります。

— 環境 —
rails 5.0.0.1
whenever 0.9.7
capistrano 3.6.1

続きを読む

  • 更新日: 2016年11月24日
  • Rails

Rails 5(Turbolinks 5)の環境で、グーグルのアクセス解析サービス Google Analytics を使うための対応策です。Google Analytics の解析用トラッキングコードは JavaScript のコードで提供されるのですが、Rails で Turbolinks を有効にした場合、$(document).ready() や $(window).load() が発動せず、JavaScript が動作しないという問題に遭遇することがあります。

そのための対策として、Turbolinks 5より前のバージョンでは、Turbolinks が提供する page:load 等のイベントを利用していました。Turbolinks 5 では、これに代わり turbolinks:load 等のイベントを利用します。

— 環境 —
rails 5.0.0.1
turbolinks 5.0.1

続きを読む

  • 更新日: 2016年11月25日
    公開日: 2016年11月22日
  • Devise

Rails 5 + Devise 4.2 の環境でユーザー認証機能を実装する機会があったのですけど、細かい部分で色々と実装すべき項目や必要な知識が沢山あったので、復習を兼ねてブログ過去記事を参考にしつつチェックリスト的にまとめてみました。

— 環境 —
rails 5.0.0.1
devise 4.2.0

なお、Rails4 から Rails5 への変更においては、Devise を使った認証機能の実装では特にはまる箇所はありませんでした。Devise 3 から Devise 4 への変更において、Strong Parameters 設定の API に変更があります。

https://github.com/plataformatec/devise

詳しくは上記 Devise GitHub ページ公式の README を参考。

続きを読む

  • 更新日: 2016年11月18日
  • Rails

Rails アプリケーションで Twitter や Facebook などのソーシャルメディアサービスのシェアボタンを簡単に設置する方法の紹介です。gem を探していたら、social-share-button という gem を見つけたのでこれを利用してみました。

— 環境 —
rails 5.0.0.1
social-share-button 0.8.4

social-share-button

まずは social-share-button の gem をインストール。

Gemfile

続きを読む

  • 更新日: 2016年9月30日
  • Docker

こんにちは。皆さん Docker for Mac 使われていますか?先日 Rails 用の開発環境を Docker for Mac を使って構築してみたのですが、かなり簡単に開発環境ができあがったので感動しました。

Docker for Mac: Installation on Mac OS X

開発環境をローカルに作ったり Vagrant + Virtualbox で仮想 OS 上に作ったりするよりも、Docker for Mac で開発環境を構築するのははるかに楽で簡単な印象です。

DockerでRails + MySQLの開発環境を構築 | EasyRamble

Docker for Mac のインストールや使い方や、Rails + MySQL な開発環境構築については上記記事をご覧下さい。

— 環境 —
Docker version 1.12.0
Mac OS X El Capitan

続きを読む