Rails
前回は、『OpsWorksでRailsをデプロイする際にasset:precompileを実施する方法』というタイトルで、デプロイフックの仕組みについて紹介しました。今回は、Amazon RDSのようなデータベース・サーバが別インスタンスで稼働している場合を想定して、どのように…
OpsWorksでRailsアプリケーションを運用するために知っておくべきことを数回に渡り本ブログで紹介していきます。今回はOpsWorksのデプロイフックを利用する方法です。Railsでは、JavaScriptやCSSを結合して圧縮することで、ブラウザがウェブページを描画する…
以下のように debugger-linecache のbundle時に失敗したときの対応メモ。 Installing debugger-linecache (1.1.2) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/interu/.rbenv/versio…
先日正式公開されたアプリケーションプラットフォーム「ニフティクラウド C4SA(シーフォーエスエー)をさっそく利用してみました。 Perl / Python / Ruby / CakePHP / Ruby on Railsなど様々なコンテキストが提供されていますが、今回はRuby on Railsを試…
Office 2007 以降、ワード/エクセル/パワーポイントのファイル保存形式がOffice Open XML形式となりました。 そのため、Office 2003 以前のファイルから文字列を抽出するために使っていた xlhtml や ppthtml 等では抽出することができなくなっています。 な…
外部サービスと連携すると、連携するサービスの状況に依存していろいろなエラーが発生したりします。 例えば外部サービスが高負荷であるために、タイムアウトのエラーが発生したり、強制的にコネクションをリセットされるようなエラーなど様々です。 その状…
以下のようにcapybara-webkit のbundle時に失敗したときの対応メモ。 Installing capybara-webkit (0.8.0) with native extensions /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/installer.rb:482:in `build_extensio…
Objectの追加/削除/変更時に、after_createやafter_updateのようなcallbackが実行されないようにしたい場合があります。 簡単にcallbackが実行されないようにできないかを調べてみると、各Railsのバージョンで変化はしているものの、どのバージョンでも簡単…
@kuranukiのブログで『ビジョン合宿に行ってきました』の記事中にあるSonicGarden検定という名のアプリ開発で私が作ったものを晒してみます。このSonicGarden検定では、foursquareのようなモバイル向けアプリを作るのですが、最低限で以下のような機能を満た…
Amazon EC2の低スペックインスタンス(Micro instance)で、bundle installすると、native extensionのインストールでエラーが発生する場合があります。 インストール時に必要となるライブラリが本当に足りない場合は、必須ライブラリをインストールする必要が…
script/consoleでroutesで定義したurlやpathを出力してみたい場合、普通にusers_urlなどを入力してもNameErrorとなってしまいますが、どうにかして表示させたい場合は下記の2つのやり方があります。■方法(1) script/consoleを起動すると、標準でActionContro…
railsでアプリを開発していると稀にhelperメソッドをconsoleで試してみたくなる場合があります。 そんなときは、以下の初期化をすることでhelperのメソッドを実行して試すことができるようになります。 $ script/console hoge = ActionView::Base.new hoge.e…
ファイルのアップロード機能を有するアプリケーションを運用している場合は、ウィルスに感染したファイルがアップロードされることを考慮する必要があります。もし何も対策していない場合、ウィルスに感染しているファイルがアップロードされ、そのファイル…
バッチ処理で一括処理を行うようなアプリケーションは多いかと思います。 ですがこのバッチ処理の設定をするときに、以下のようなシーンで悩まされることが多々あります。マニュアル関連の問題として、 マニュアルを読みあさらないとわからない バッチに関す…
Railsに限らず、MySQL(Innodb)を利用したサービスを開発/運用しているなら、これから解説する内容を知っておかないと、予期しないデータ不整合を発生させてしまうかもしれません。 データ不整合が発生してしまったら、本来あるべき状態に戻すのはかなり難易…
PassengerでRAILSアプリを運用しているなら、アプリのリリース時には、${RAILS_ROOT}/tmp/restart.txt を配置/更新することで、ほぼダウンタイム無し(httpdの再起動なしのため)にリリースしているかと思います。ただ、アプリケーションのソースコードの影響…
タイトルのメソッドを使い分けるポイントを忘れがちなのでエントリとして残しておく。find と find_by_ の振る舞いで異なる点は以下のとおり。 検索で複数件がヒットする場合、find では複数結果を配列で返すが、find_by_ は1件のみ返す 検索で1件もヒットし…
Redmineを運用している方は、Redmine用のDBスキーマであったり、アップロードされたファイルを定期的にバックアップされていると思います。 そして、バックアップのこと等を考慮して、アップロードされたファイル等はある特定のデータ領域に保存しておきたい…
「Rails製のOP(OpenID Provider)をMongrelで動かすと問題なく動作するが、Lighttpdで動かすとうまくいかないよ!」とお困りの方がいらっしゃいましたら、是非このエントリを読んでみてください。OpenIDのOPをLighttpdで動かす時には、注意しないとLighttpdの…
railsアプリケーションを動作させるためには、DBのmigrateをしてコマンド一発でテーブルの作成および変更ができます。そのため、利用者は安易に構築ができるようになるのですが、裏ではどのような処理が走っているのでしょうか? 今回はMySQLのドライバにつ…