Develop with pleasure!

福岡でCloudとかBlockchainとか。

Rails

OpsWorksでRailsな環境作ってみた。

AWS OpsWorks 使ってRailsアプリを動作させる環境作ってみた。 Stackを作成 まず、Stackを作成する。StackはEC2のインスタンスや他のAWSリソースのコンテナ。 Layerを追加 続いてStackにLayerを追加する。Stackには複数のLayerが定義可能。基本的にWeb Serve…

ruby on puma

Rackアプリが動作するPumaっていうRubyのサーバ実装を発見。Engine Yardのプロジェクトみたいね。プーマという名前からして速さがウリか?A Modern, Concurrent Web Server for Ruby - Puma puma/puma · GitHub 概要 Mongrelをベースに作られたサーバみたい…

BeanstalkにRailsアプリをデプロイしてみた。

【AWS発表】 AWS Elastic Beanstalk - Rubyのサポート開始、さらにVPC統合も可能に - Amazon Web Services ブログと遂にBeanstalkがRubyにも対応したので、早速RailsアプリをBeanstalk使ってデプロイしてみた。 環境構築 コマンドラインでBeanstalkを使用す…

AuthLogicでID、パスワード以外の項目を認証条件に追加する。

Rubyの認証ライブラリの1つであるAuthLogicは、IDと暗号化されたパスワードによる認証を行う。ただ、場合によっては、認証時にIDとパスワード以外の項目も認証条件に加えたい場合がある。 そんな場合は、Authlogic::Session::Scopesのwith_scopeメソッドを…

Passengerのアーキテクチャ

Passengerのアーキテクチャを日本語訳してるサイト発見。Passenger アーキテクチャ概要 (koshigoe 仮訳)個人的にSpawnServerについてよく把握してなかったこともあったな。 ApplicationSpawnServerRailsのアプリケーションコードをキャッシュすることで、ア…

AuthLogicでActionView::TemplateError (You must activate the Authlogic::Session::Base.controller with a controller object before creating objects)

RailsでActionController::RoutingErrorやActionController::MethodNotAllowedといったエラーが発生した際に、rescue_action_in_publicメソッドでキャッチして、カスタムしたエラーページを描画するよう修正してみたが、エラーページを描画する際に、 Action…

Rails2.3.4で同時アクセス時のエラーが解消。

早速Rails2.3.4にアップグレードしたら、2.3.3で動作させてた時に問題になっていた、developmentモード動作時に、同時アクセスするとエラーA copy of ApplicationController has been removed from the module tree but is still active! - Develop with ple…

Rails 2.3.4

Rails2.3.4がリリースされてた。Ruby on Rails: Not Found内容的には、 XSS脆弱性への対応Ruby on Rails: Not Found Cookie storeの脆弱性への対応Ruby on Rails: Not Found I18nサポートの強化こちらのサイトに分かりやすく記載されてる。記述量が減ってス…

AuthLogic使用時にUserテーブルがアクセス毎に更新される。

認証エンジンにAuthLogicを使用しているが、usersテーブルにlast_request_atというカラムがあると、毎回リクエストの度にusersテーブルに対して、last_request_atを更新するクエリが発行される。通常の処理であれば特に問題無いのだけれど、Ajaxで複数のリク…

Passenger入れてみた。

RailsのサーバをPassengerにしてみた。Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用 | Redmine.JP↑のBlogに詳しく記載されてるのを参考にインストール。いざ、Apacheを再起動すると403エラーが発生する…。 Apac…

RubyでPayPal

RailsアプリでPayPalのIPN(即時支払い通知)と連携するのに、paypalというPluginが用意されてる。サイトに記載されているとおりにPluginをインストール、 ruby ./script/plugin install svn://vault.jadedpixel.com/paypal/trunk/paypal しようとしたが、接続…

A copy of ApplicationController has been removed from the module tree but is still active!

RailsでOpenFlashChartのグラフを複数埋め込んだページを作成した。ページ描画後に各グラフは個別にグラフを描画するため、RailsのControllerへリクエストを投げる。このとき、いくつかのグラフがJSONのParseエラーになり、描画できない。全部正常に描画でき…

OpenFlashChartⅡでwmodeを指定する。

Flashでキレイなグラフを生成してくれるOpenFlashChart。 Railsにも、OpenFlashChartをRailsで使用するためのPluginが公開されている。 PullMonkey Projects: Open Flash Chart Plugin for Ruby on Rails - Graphs簡単にキレイなFlashグラフを生成してくれる…

Rails2.3.3リリース

Rails2.3.3がリリースされたみたい。Riding Rails: Rails 2.3.3: Touching, faster JSON, bug fixesActiveRecordに関しては、 ARオブジェクトのupdated_at/onのみを現在日時に更新するtouchメソッドを追加。 (プライマリキーがidでない等の)レガシーなスキー…

AuthLogicの自動ログイン機能をオフにする。

forgot_passwordとAuthLogicを組み合わせた際に、forgot_passwordでパスワードをリセット後、ログイン画面に遷移しようとすると、既にUserSessionオブジェクトが生成されておりログインしている状態になる。何故に?と結構悩んだけど、AuthLogicにはユーザ作…

forgot_password with AuthLogic

パスワードのリマインダ機能を実装するのに、forgot_passwordを利用してみた。認証エンジンには、AuthLogicを使用している。まず、プラグインをインストール。(事前にgitをインストールしておく必要がある。) ruby script/plugin install git://github.com…

IDEAで.html.erbのファイルが編集できない。

Ruby及びRailsのサポートが充実してきているIDEAを使ってRoRの開発を始めたけど、何故か拡張子が「.html.erb」というファイルを編集しようとすると、IDEAのエディタが固まってしまい、何も入力を受け付けなくなる。IDEAのログを見ると、 java.lang.Assertion…

久しぶりにRoR

軽量アプリをさっくり作ろう!と、久しぶりにRoR使うことに。長い間使ってなかったので、リハビリも兼ねてRails界隈の動向をチェック。現状の安定版のRailsは2.3。 Rails2.3の推奨環境に従ってRubyも1.8.7をチョイス。 Railsも随分バージョンアップしたなー…

Rails2.3.0RC1リリース

Rails2.3.0RC1がリリースされてるみたい。変更点はこちら↓のサイトに詳しくまとめられている。 個人的に注目な変更点としては、 Rackの導入CGIモジュールに変わってRackというライブラリが採用されたみたい。Rack自体は特にRailsに特化したプラグインではな…

Railsのセキュリティガイドブック

というのが公開されてみたい。 ドイツのWebアプリケーションセキュリティコンサル企業らが設立したRuby on Rails Security Projectは11月4日、Ruby on Rails(RoR)のセキュリティガイド「Ruby on Rails Security guide」を公開した。HTMLページまたはeブッ…

Rails2.2

いよいよスレッドセーフになったのね。JRubyのGoldSpikeプラグインもこれで、Rubyランタイムをプールしてマルチスレッド対応する必要がなくなるのか。あと、RubyベースでもMongrelみたいにプロセスを複数立ち上げて運用というケースとまた違った形態になるの…

9arrows入れてみた。

http://9arrows.googlecode.com/svn/trunk よりソースをチェックアウト。DatabaseはPostgreSQL。大体、RailsのアプリってMySQLが多いので珍しいな。ここからWindows版をGet。 http://www.postgresql.org/download/インストールしたDatabaseの情報で、config/…

RailsでAjax連携

RailsでAjax連携する方法。①link_to_remoteRailsで最も一般的な方法。 <%= link_to_remote( "click", :update => "target", :url =>{ :action => :update }) %>なタグをrhtmlに入れておくとサーバ側でsay_whenアクションが呼ばれ、アクション内で、render xx…

ActiveRecord#after_find

ActiveRecordのafter_findコールバック。findメソッド実行時のコールバックと思ったら、findで帰ってきたテーブルのインスタンス分実行されるのね…。大量のレコードが返ってきた場合、パフォーマンス劣化が発生する…。てっきりにクエリ単位と思ったら違った…

userstampプラグイン

ログインした認証情報をテーブルの作成者、更新者にセットしてくれるRailsプラグインuserstamp。Railsのコントローラからモデルへデータをどう渡してるのか見てみると、指定したクラスのクラス変数に保持してる。結局、Railsのプロセスが1リクエスト1プロ…