サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
夏の料理
tam.qmix.org
申し込み Linode のトップページにある Sign Up というリンクから申し込む。クレジットカードが必須。12ヶ月または24ヶ月まとめて払うと少し安くなる。 フォームを埋めて Continue を押すと、以下のような確認画面が出てくるので、Complete Order をクリックすると order が完了する。 ログイン Linode のトップページの右上にある Log in からログインする。 ユーザ名、パスワードを入れてログインすると Linode Manager という画面になる。自分が利用している Linode の一覧が出てくるので Linode の名前をクリックすると、その Linode の Dashboard 画面になり、ここから仮想マシンについていろいろ管理を行う。 仮想マシンの作成、起動 Linode Manager の Dashboard から、Deploy a L
ページ新規作成画面の実装 入力フォームの生成 ジェネレータで生成された雛形を元に、Minki の個々の機能の実装を始めます。 まずは「ページの新規作成」です。 「ページの新規作成」のアクションは、wikiコントローラに new という名前 で作ることにします。 new のやるべきことは、新規ページ名の入力を求める フォームを表示することです。表示はビューの担当ですので、new アクション は今のところ何もしないままで放置します (ジェネレータが生成した空の定義 のまま)。 一方、対応するビューのテンプレート app/views/wiki/new.rhtml は以下のよ うに書き換えます。 <h1>新規作成</h1> <%= start_form_tag :action => 'create' %> <%= text_field 'page', 'name' %> <%= submit_t
generateによる生成 モデルの作成 では、いよいよアプリケーションのコードを作っていきます。最初はモデルを作成します。 Railsでモデル、ビュー、コントローラのコードを書くには、おおまかに以下の二つの方法があります。 全部手で書く ユーティリティスクリプト script/generateコマンドを使って雛形を生成し、それを手で修正していく 大抵の場合は 2番目の方法でやるのが楽です。特に、Rails のチュートリアル では必ず触れられている scaffold の機能を使うと、あっと言う間にデータベー スをいじれるアプリケーションができてしまいます。しかし scaffold は魔法 の度合いが高すぎるので、ここでは敢えて使いません(どうせほとんど書き直 すし)。モデルジェネレータでモデルの雛形だけ生成します。 % ruby script/generate model Page
Consistent Hasing を Ruby で試す Consistent Hashing は、複数のコンピュータ(ノード)にレコードを分散するのに使われるアルゴリズムです。 Consistent Hashing を試すではプログラムサンプルが Perl で書かれていますが、それを Ruby に書き直してみました。それだけではなんなので、二分探索を用いてキーの検索の高速化も試みています。 プログラムの説明については、Consistent Hashing を試すも併せて参照してください。 サーバー台数で割った余り (mod) を使用する 省略 Consistent Hashing Perl版と同じアルゴリズムで、キーとノードのハッシュ値を計算し、キーのハッシュ値に近い値を持つノードを選択します。このプログラムを ch1.rb とします。 require 'digest/md5' def
最近、Ruby/EventMachineというライブライがおもしろくて良く使っています。EventMachineは、イベントドリブンで非同期I/O処理を行うためのライブラリで、一部 C++ で書かれていて高速動作するのが特徴です。 EventMachine のインストール rubygems を使うのが簡単です。 $ gem install eventmachine EventMachineの使い方 ごく簡単な例: require 'rubygems' require 'eventmachine' EventMachine.run { EventMachine.start_server('localhost', 7000, EventMachine::Connection) } EventMachine.run はイベント待ちの無限ループを行います。ブロックの中身はイベント待ちループの初期化
« 2005年02月 | メイン | 2005年04月 » 2005年03月20日 XREA で Ruby on Rails を使う XREA で Ruby on Rails を使うことに挑戦してみました。 前提というかおおまかな方針というか XREAではシェルアカウントでできることがかなり制限されています。よって、自分の手元のマシンで必要なものをインストールした後、ファイルをXREAサーバに転送することにします。 また、XREAのドメインウェブ機能を使って、独自ドメインのトップで動かすことを前提とします。そうでない場合はNon VHost Installationを参照してください。 なお、自分の場合は広告免除している環境で動かしましたが、そうでない場合でも基本的には同じと思われます。 RubyGems, Railsのインストール 自分の手元のマシンで、普通にRubyGemsとRails
Postfixとは Postfixは、sendmailに対する各種の不満を解消するべく作られた新しい MTA(Mail Transfer Agent)です。sendmail互換インタフェースも備え、 sendmailの代わりに入れ替えて使うこともできます。 設定も sendmail に比べれば遥かに簡単で、おすすめの MTA です。 Postfix のインストール FreeBSD 6.0 を前提としています。FreeBSD 4.x 以前では、若干違う点があり ます。また、DB類は使用せず、最低限の構成で動かすものとします。 sendmail が動いているなら止める /etc/rc.d/sendmail stop /usr/ports/mail/postfix で make install # cd /usr/ports/mail/postfix # make install ===> In
VMwareのメニューの File > New > Virtual Machine でウィザード起動 Select the Appropriate Configuration Typical Select a Guest Operating System Guest operationg system --- Linux Version --- Other Linux 2.6.x kernel Name the Virtual Machine Ubuntu 7.04 Locationはそのまま Network Type Use bridged networking Specify Disk Capacity Disk size 16(GB) Edit virtual machine SettingsでVMの設定 Hardware CD-ROM: Use ISO image を選択し、ダウン
関連: FreeBSD 7.0 を VMware Workstation 6.0 にインストール インストール環境 VMware Workstation 6 Host OS = Windows XP Professional Guest OS = FreeBSD 6.3R OSのインストール Windows XP 上で、FreeBSD ftp site ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/からISOイメージをダウンロードする。 VMwareのVMメニューのSettingsからCD-ROMを選択し、Use ISO imageをチェックし、ダウンロードしてきたISOイメージファイルを指定する。 bootして、通常通り一通りインストールする。 Xのインストール packageでX.Org Distributi
以前、 Rubyの正規表現によるXMLの解析 という記事を書きましたが、今回それをもう少し汎用化した xmlhash.rb というライブラリを作ってみま した。 xmlhash.rb は厳格に XML を解析するものではなく、解析できない XML もあ ると思いますが、特定用途には簡単に使うことができる軽量なライブラリです。 例 xmlhash.rb は XML 文字列を Ruby の Hash や Array を組み合わせた構造に 変換するライブラリです。 たとえば、以下のような内容の export.xml というファイルがあるとします。 <?xml version="1.0" encoding="utf-8"?> <opml version="1.0"> <head> <title>Subscriptions</title> <dateCreated>Sat, 17 Dec 2005
Ruby on RailsをFreeBSD 6.0R にインストールする Rubyのインストール まずは ruby を package あるいは ports でインストールする。 ports を使う場合は以下の通り。特に難しいところもなく簡単。 # cd /usr/ports/lang/ruby18 # make install Rails を動かすには、Ruby のバージョンは 1.8.2 以上が必須。 rubygemsのインストール 次に、rubygems(0.8.11)をportsを使ってインストールする。 rubygemsはrubyのパッケージ管理システムで、Rails はこれを使ってインストー ルするのが簡単。 # cd /usr/ports/devel/ruby-gems # make install Ruby on Rails のインストール rubygems を使って ra
Hpricotは Ruby用の HTML パーサです。スキャン部分は C 言語で書かれていて高速に動作します。 HTMLの解析や書き換えに威力を発揮する便利なライブラリです。 rubygemsを使うのが簡単です。 # gem install hpricot すると以下のようにプラットフォームを聞いてきます。Unix系OSであれば 1 を、mswin32 であれば 2 を選びます。 Select which gem to install for your platform (i386-freebsd6) 1. hpricot 0.4 (ruby) 2. hpricot 0.4 (mswin32) 3. Cancel installation コンパイルが始まり、インストールが行われます。 Building native extensions. This could take a while.
SaltedHashLoginGeneratorとは? SaltedHashLoginGenerator は、Railsのアプリケーションにログインなどのユーザ認証の機構を付加する ジェネレータです。 同様のものに Login Generator というものがあります。SaltedHashLoginGeneratorは、Login Generator を発 展させたものと言えます。 ただし、SaltedHashLoginGeneratorは、現在では Rails のプラグイン機構を 利用してLoginEngineとして再実装されています。 プラグイン機構を持たない Rails 0.13 以前では SaltedHashLoginGenerator は有用ですが、Rails 1.0 で使うなら LoginEngine のほうが良いでしょう。 LoginEngine については LoginEng
認証用ユーザ登録 今のままでは、誰でも管理画面を表示して操作できてしまいます。それではま ずいので、アクションに認証をかけて特定のユーザしか操作できないようにし なければなりません。認証にはいろいろな方法がありますが、Minki では一般 的なユーザ名とパスワードによる認証を行うことにします。 ユーザ認証の仕様は、以下のようにしたいと思います。 ユーザは複数登録することができる。 adminユーザだけが管理画面を表示・操作できる。 その他のユーザはwikiページの編集ができる。 登録されていないユーザはwikiページの編集や新規作成はできない。表示は可能。 なお、標準添付ではありませんが Rails には Login Generator というものがあります。 しかし、ここではこれを使わずに、仕組みを勉強するため自前で認証機構を作 ります。実際に実用的なシステムをつくる場合は
RailsによるアジャイルWebアプリケーション開発 RailsによるアジャイルWebアプリケーション開発: 本 Agile Web Development With Rails の日本語訳。すべての Rails 開発者必携 の書です。原著は Rails 1.0 が出る前に出版されているため、この訳本には 付録に Rails 1.0 での変更点が追加されています。また、日本語を扱うため の注意事項も同じく付録に書かれています。 ライド・オン・Rails ライド・オン・Rails Ruby on Railsを徹底攻略: 本 http://moriq.tdiary.net/20060615.html#p01 はじめよう Ruby on Rails はじめよう Ruby on Rails: 本 http://kazuhiko.tdiary.net/20060615.html#p01 かんたんRu
Typoとは何か? typoとは、Ruby on Railsで実装された ブログツールです。 インストール方法 typoはRuby on Railsを動作させる環境が必要です。日本国内の通常のレンタ ルサーバではFastCGIが使えないところがほとんどなので、実用的に動かすこ とは困難です。したがって typo は自分で専用のサーバをたてられる人向けで す。 以下は筆者の環境でのインストールメモです。 環境: FreeBSD 6.0 Apache 2.0系 + FastCGI Ruby 1.8.4 Rails 1.0 MySQL 4.1系 これらの環境はすでにインストール済みであることとします。 ダウンロード typoには、stableとcurrentがありますが、ここではcurrentのインストール方 法を説明します。typoはきちんとしたテストコードがあり、currentでも安定 して
Gruff は Ruby 用のグラフ描画ライブラリです(参考: Gruffでグラフ)。 今回は、Gruff を Rails から使う方法を説明します。 Sparklines というグラフライブラリは、Rails 用の generator も用意されて いますが、Gruff にはまだないようです。 なので、手作業で Rails に組み込むことになりますが、手順は簡単です。 準備 Gruffでグラフ等を参照して Gruff をインストールします。 サンプルデータの作成 ここでは、説明のため、以下のデータ(携帯電話/PHSの契約数)を用意するも のとします。 sqlite3用スキーマ create table cellphones ( id integer primary key, name varchar(255) not null, subscriber integer ); データの内容(
Gruffとは? Gruff は、Ruby用のグラフ作成ライブラリです。 http://nubyonrails.topfunky.com/pages/gruff インストール Gruff を使うには、以下のものが必要です。 ImageMagick または GraphicsMagick RMagick (ImageMagick/GraphicsMagickのRubyインタフェース) FreeBSD の場合は RMagick の ports (graphics/ruby-rmagick)が用意されて いるのでそれをインストールすれば OK です。 Gruff は rubygems を使って以下のようにインストールします。 # gem install gruff サンプルコード require 'rubygems' require_gem 'gruff' g = Gruff::Line.new
Migrationとは Migration とは、Railsで使うデータベースの管理機能で、テーブル作成・カラ ムの追加/変更などの作業を一元管理できます。SQL でスキーマを書くのでは なく、Rails独自の記法(Rubyの文法の範囲内)を使ってDB管理を行います。以 下のようなメリットがあります。 スキーマのバージョン管理ができる rake コマンドでスキーマのバージョンアップ/ロールバックが可能 データベースに依存しない書き方ができるので、他のデータベースに切り替えるのが容易 対応しているデータベース 現在、対応しているデータベースは MySQL, PostgreSQL, SQLite, SQL Server, Oracle です。 今後、対応DBは増えていくと思います。最新情報は、 http://api.rubyonrails.org/classes/ActiveRecord/Mi
準備段階 Wikiクローン Minki まずはアプリケーションの名前を決めます。ここではMinkiとしてみました。 Minimal Wikiの略という程度の意味です。 Minkiは、Hikiを手本にして、ごく 基本的なWikiの機能をもたせることにします。ページの表示、新規作成、編集 などはもちろんできるものとしますが、プラグインなどの機能は省略します。 tDiaryのテーマには対応させたいと思います。 MVCとRailsアプリケーション Railsは、MVCという設計モデルに基づいてアプリケーションを作成します。 MVCとは、Model、View、Controllerの三要素でソフトウェアを実装する方式で、 最近のWebアプリケーションフレームワークの多くがこの方式を採用していま す。MVCの各要素の役割は以下のとおりです。 モデル(model)アプリケーションの状態を司る。単なるデ
rails.el は、Emacs で rails スクリプトを書くことを支援する Emacs Lisp プログラムです。ruby-mode に対するマイナーモードとして実装されています。 インストール まず ruby-mode を使えるようにします。ruby-mode.el は ruby に標準でつい てきます。load-path のどこかに ruby-mode.el を置いて、.emacs に以下の 行を追加します。 (setq interpreter-mode-alist (cons '("ruby" . ruby-mode) interpreter-mode-alist)) (setq auto-mode-alist (cons '("\\.rb$" . ruby-mode) auto-mode-alist)) (autoload 'ruby-mode "ruby-mode" ni
ActiveRecordでSQLiteアダプタを使っているとき、ひとつのデータベースファイルに複数のプロセスやスレッドからアクセスしていると、 SQLite3::BusyException: database is locked というエラーが出ることがあります。SQLiteではアクセスを試みてエラーを返すまでにロックを待つ時間がデフォルトでは0らしく、ロック状態だった場合は即座にエラーが発生します。 SQLite ver.3の対話型プログラム sqlite3では、ロック時の待ち時間を設定する .timeout というコマンドがあります。 .timeout 1000 のようにして使います(単位はミリ秒)。これを使えばロックされている場合にエラーではなく、ロック解除まで待ち状態にさせることができます。 ActiveRecordから timeout 値をセットするには、やや強引ですがとりあ
production環境 既出の通り、Rails には実行時環境として development, production, test の三つの環境があります。今まで、WEBrickベースのWebサーバで開発を行って きた環境は development 環境でした。次は、実際にアプリケーションとして 本番運用する production 環境について考えます。 Webサーバの選択 Railsは、CGIをサポートした大抵の Webサーバで動かすことができますが、速 度や実績を考えると、おおよそ次のような選択肢に絞られます。 WEBrickWEBrick は Ruby のみで書かれており、Ruby 1.8 系には標準添付されていることもあって手軽に動かすことができます。開発時には最適なWebサーバと言えます。反面、速度やスケーラビリティの性能面はあまり良くありません。 Apache(CGI)Rai
LoginEngineとは? LoginEngineは RailsEnginesの一種で、Railsアプリケーショ ンにユーザ認証の機能を付加するためのものです。 Engine とは、Railsアプリケーションに(既存のコードを変更することなく)い ろいろな機能を付加するプラグインです。 もともと SaltedHashLoginGeneratorという名前でジェネレータとして提供されていたものを Engine として再実装したのが LoginEngine です。 SaltedHashLoginGeneratorとは? SaltedHashLoginGeneratorを使ってみるのページを参照。 なお、LoginEngineもLoginGeneratorも使わずに認証機構を実装した例が、 RailsでWikiクローンを作る10 にありますので、そちらも参考にしてください。 LoginEngi
Ruby on Rails を用いて、インクリメンタル検索のできる英和辞書webアプリ を作ってみました。インクリメンタル検索とは、検索語句の入力途中の文字列 から随時検索を行い、結果を動的に書き換えていく検索のことです。対象読者 は基本的な Rails の知識がある人としています。 データベースは SQLite を使用しますが、テーブル構造は単純なので 他のデータベースに変更するのは容易です。 dictアプリケーション用ディレクトリの作成 まずアプリケーションのディレクトリを作成します。アプリの名前は dict と します。 % rails dict 辞書データ 以下の作業は、すべて dict アプリの db ディレクトリ (dict/db) で行いま す。 辞書データは、 GENE95辞書 を用います。このページよりデータをダウンロードし、展開すると gene.txt というテキストフ
認証の適用 session HTTP はもともとステートレスな(状態を持たない)プロトコルです。なので、 例えば今どんなユーザでログインしているかという情報を保持するには、一連 のセッションを識別して管理する仕組みが必要になります。セッション管理の 方法はいろいろありますが、Rails は Cookie をベースにしたセッション管理 機構を標準で装備しています。 実際に Rails でセッションの機構を使う場合は、Cookie を意識する必要は全 くありません。コントローラから参照できる session というハッシュのよう な属性があり、任意のキーで任意のオブジェクト(一部制限あり)を session に格納しておくことができます。そしてsessionの内容は複数のアクションに またがって参照することができます。 既に、似たようなものとして flash について説明していますが、flas
Ruby関連 RubyMemo Gruffでグラフ Rubyの正規表現によるXMLの解析 HTMLパーサ Hpricot Ruby on Rails関連 RailsのInstall RailsでWikiクローンを作る RailsでAjax: インクリメンタル検索英和辞書 GruffをRailsで使う 認証 LoginEngineを使ってみる SaltedHashLoginGeneratorを使ってみる (古い) MigrationによるDB管理 Emacs用rails.el Typoのインストール Rails関連書籍 FreeBSD関連 FreeBSD 6.3R on VMware インストールメモ アプリケーションインストールメモ Apache,MySQLのインストール SQLiteインストール PostfixのFreeBSD 6.0へのインストール Ubuntu関連 Ubuntu 7.
Routing Routing とは、Rails で Apache の mod_rewrite みたいなことをする機構で す。詳しくはhttp://wota.jp/ac/?date=20050725が参考になりますので、そち らを参照してください。 Rails でのアクションの URL の基本形は、 コントローラ名/アクション名/ID です。今まで、例えば FrontPage を表示しようと思うと、 http://localhost:3000/wiki/show/FrontPage という、ちょっと長い URL になっていました。本当は http://localhost:3000/ にアクセスすると FrontPage を表示したいところで すが、今は Congratulations, you've put Ruby on Rails! のページ (public/index.html)
はじめに Ruby on Railsには良くかけたチュートリアルがあって、最初の一歩は踏み出 しやすいようになっています。しかし、チュートリアルをひととおり読んで、 scaffoldスゲーということはわかったのだけど、次に何をしたら良いかわから ないという人が多いようです。かくいう筆者もその一人でした。 次に何をすればよいかというと、一番良いのはやはり自分で実際に何かアプリ ケーションを作ってみることです。というわけで、Rails初心者の筆者が、 Railsの勉強がてら「Wikiクローン」を作ってみたので、その過程を書いて見 ることにしました。何かの参考になれば幸いです。 Wikiクローンを選んだのは、良く知られているアプリケーションであることと、 機能を絞れば Rails の練習にはちょうど良いくらいの規模だと思われるから です。 (注: Wikiクローンで大変なのは、Wiki記法のパー
次のページ
このページを最初にブックマークしてみませんか?
『RailsでWikiクローンを作る』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く