rails
heroku gem が入っているのは当然として。heroku_san っていう複数環境マネジメントアプリがあるんですが、Stack が最新の cedar じゃなくて、デフォルトの bamboo-mri-1.9.2 になっちゃうので序盤は手動でやることにしました。 heroku create の際、--remot…
jQuery で、 $("#target").keypress(function(event) { if ( event.which == 13 ) { //更新... } }; とか書けるじゃないっすか。13 は [Enter] のキーコードね。それで、capybara でどうやってテスト書いたもんかなぁと色々試行錯誤して、@nukusuさんに教え…
Spork は、起動時に Rails 本体だけでなくアプリケーションもガーッと読み込むので、Model や Routes を変更しても、終了・起動しないと反映されない。これでは autotest なんか使っている時めんどくさいので、ちょっと設定を変更した。最初はこっちを参考に…
Ruby on Rails Tutorial Learn Rails by Example は大変よろしい教材で重宝しているのだが、Chapter 11 User microposts の 11.5 Exercises 設問 8 に付記されたコード: Listing 11.42. A helper to wrap long words. が大変よろしくない。app/helpers/micr…
なんか、Vim スクリプトの管理には、Vimana というものが便利らしいので、それを使って rails.vim をインストールする。 まず cpanm を導入: $ sudo cpan App::cpanminus 長ぇ……入った。次に Vimana を導入: $ sudo cpanm Vimana 長ぇ……入った! vimana で…
※ 追記したから最後まで読んでから実行してね。 VPS から autotest の Growl の通知を受けたい。autotest-growl は Linux 対応してるのかしら?と思ってソースを見たら、どうも notify-send というコマンドに依存しているらしい。 Ubuntu では libnotify-bin…
2. Phusion Passenger をインストール、アップグレード、アンインストールする 2.1. 一般的なインストールの説明書 2.1.1. インストール方法の概要 Phusion Passenger をインストールするには3つの方法があります。 Phusion Passenger の gem をインストール…
1. サポートしているオペレーティングシステム Phusion Passenger は、POSIX 系オペレーティングシステムで動きます。別の言葉で言えば、Microsoft Windows を除いた、地球上のほとんど全てのオペレーティングシステムで動きます。Phusion Passenger は、数…
Twitter をウオッチしていると、Rails のデプロイで苦労している方が多いので、代表的なサーバ構成である Apache + Passenger のドキュメント(Phusion Passenger ユーザーズガイド)を訳して、利用してもらおうと思いました。 概要 Phusion Passenger は、R…
Mongoid のバージョンをアップグレードする時のリファレンスとしてご利用下さい。 2.0.0.BETA.16 + へのアップグレード このバージョンは、MongoDB 1.6.0 を必要とします。 2.0.0.BETA.15 + へのアップグレード もし JSON のシリアライズに include_root_in_…
FABRICATION Paul Eliott さんの Fabrication Gem は、オブジェクト生成ライブラリです。Mongoid を最初からサポートしており、テストの簡便のために、オブジェクトを生成する素敵な構文を提供しています。 Fabricator(:person) do title "Grand Poobah" add…
CARRIERWAVE ファイルアップロードを扱う Carrierwave は Mongoid をサポートしています。現在のところ、ファイルと S3 に格納することを指定できます。:mount_on オプションがアップローダークラスに定義されてない場合は、ファイル名が アップローダー名_f…
Mongoid は Rails 3 環境で以下の Rake タスクを提供します。 db:create 依存関係のために存在します。実際には何もしません。 db:create_indexes モデルから全てのインデックス定義を読み取り、データベースにそれらを作成します。 db:drop システム用コレ…
WEB+DB PRESS vol.56 届きました。技術評論社様、@inao 様、献本あざーっす! 献本と言えど、ビビッと電波を受信しないとレビューしないんで、割り引かなくていいですよ。(前号はリクエストが記事になったにも関わらずレビューしてない) WEB+DB PRESS Vol.…
Mongoid にはアプリケーションで使える、いくつかの役に立つ機能があります。 マスター/スレイブ サポート mongoid.yml でスレイブデータベースを設定しているなら、スレイブを有効化した読み取りクエリを、ラウンドロビンでスレイブデータベースを参照しま…
index マクロを使うことにより、ドキュメントにインデックスを定義することができます。:unique オプションをつけると、ユニークなインデックスを構築できます。オプションは必須ではありません。 class Person include Mongoid::Document field :ssn index …
Mongoid はドキュメントとエンベッドされたドキュメントの継承をサポートしています。以下のドメインモデルを考えてみます。 class Canvas include Mongoid::Document field :name embeds_many :shapes def render shapes.each { |shape| shape.render } end…
Mongoid は、基本的なバリデーションを提供するために ActiveModel::Validations を含んでおり、さらに関連と一意性バリデーションに手を加えています。さらに詳しい情報は、ActiveModel::Validations のドキュメントを参照してください。 全てのバリデーシ…
Mongoid は以下のコールバックをサポートしています: before_create before_destroy before_save before_update before_validation after_create after_initialize after_destroy after_save after_update after_validation コールバックは、他のドキュメン…
Mongoid は、データベースのドキュメントの問い合わせに、2種類のスタイルをサポートします。最初のスタイルは、ActiveRecord風の、ファインダー/動的なファインダーの構文です。2つ目のスタイルは、Mongoid の Criteria API を使った推奨メソッドです。(…
今回は、データベースへの Insert、Update、Delete です。 Mongoid は ActiveRecord スタイルのデータベースへの永続化メソッドをサポートしています。永続化戦略の項は、実際に実行されるデータベースクエリについて、注意して見てください。 作成 新しいド…
bigthink.com というサイトに、7月22日に記録され、8月3日付けで公開された、DHH の現時点で最新と思われるインタビューがあります。ビデオの他、文章に書き起こしたものがありますので、英語の聞き取りが出来ない人も、読んで内容を把握することができます…
Mongoid::Document は、embeds_one, embeds_many, embedded_in といった、ActiveRecord スタイルの3つのマクロを通して、他のドキュメントに対して関連を設定することができます。関連を設定すると、1つのドキュメントが他のすべてのドキュメントのルートに…
インストールに引き続き、ドキュメントを解説します。 ドキュメントは Mongoid のコアオブジェクトであり、データベースに永続化したい全てのオブジェクトは、Mongoid::Document をインクルードしてください。MongoDB でのドキュメントは、BSON オブジェクト…
まずは、インストールの解説です。 $ gem install mongoid --pre Rails3 対応の最新版は執筆時点で 2.0.0.beta.16 で、ベータ版なので、--pre オプションを使ってインストールします。2.0.0 リリースの際には、--pre を取って下さい。そして、mongo ドライバ…
つい先日 1.6.0 がリリースされ、MongoDB の時代がいよいよキタ!って感じです。MongoDB 自体のインストール・操作などは下記の記事を参考にしてください。 Mac OS X で MongoDB を動かす ハンズオンで分かる MongoDB チュートリアル この記事では、Rails3 …
config/environments/development.rb に以下を書くだけ。 config.action_mailer.default_url_options = { :host => "localhost", :port => 3000 } config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "smtp.…
Devise の README は懇切丁寧だが、その分クソ長いので、読むのに疲れる。後続のために訳してみることにした。無保証。OAuth2 の部分は飛ばした。長いし。差し迫ったら訳します。 Devise Devise は Warden をベースにした Rails のためのフレキシブルな認証…
引数は渡せませんが、環境変数で渡せます。バッチ内部で、 p ENV["HOGE"] などとしておけば、 HOGE=foo /path/to/script/runner /path/to/batch として、"foo"という文字列を渡せます。もちろん、複数渡すこともできます。 HOGE=foo FUGA=bar /path/to/scrip…
例えばSamoaの場合。 t = Time.zone.now #=> Mon, 31 May 2010 07:57:37 UTC 00:00 t.in_time_zone(ActiveSupport::TimeZone['Samoa']) #=> Sun, 30 May 2010 20:57:37 SST -11:00 で、できます。 Time.zone = 'Samoa' Time.zone.now #=> Sun, 30 May 2010 2…