SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

RailsでWikiシステムを作成する

Ruby on RailsによるWebアプリケーション作成の実例

ダウンロード サンプルソース (76.1 KB)

その他の注目すべきファイル

 生成された「app/views/layouts/application.rhtml」ファイルは、アプリケーションレベルの(つまり全コントローラで使用可能な)一貫性のあるルックアンドフィールを提供し、ヘッダやフッタなどの要素を含んでいます。しかし、コントローラ固有のレイアウトを作成したい場合もあるはずです。そこでこのファイルの名前を「wiki.rhtml」に変更し、特定のWikiControllerにのみ適用されるようにしました。さらに、この「wiki.rhtml」ファイルをカスケーディングスタイルシート(CSS)ファイル「public/stylesheets/wiki.css」にもリンクさせました。これにより、色やフォントなどのアプリケーションの外観をCSSで制御できるようになります。

 さらに私が少々カスタマイズしたもう1つの生成ファイルは「config/routes.rb」です。マッピングの1つを変更し、生成された「public/index.html」ファイルを削除することで、行末のURI(/wiki/)を指定せずにインデックスページにアクセスできるようにしました。

map.connect '', :controller => "wiki"

 これで、http://localhost:3000/のURLは、http://localhost:3000/wiki/と同じものとして処理されます。

 また、「config/routes.rb」ファイルに次の行を追加して、WebサービスのURLのように簡潔なREST(Representational State Transfer)を使用できるようにしました。

map.connect 'wiki/:action/:f', :controller => "wiki"

 例えば上の行を追加すると、http://localhost:3000/wiki/view?f=untitledのようなURLは、http://localhost:3000/wiki/view/untitledと表示されます。この種のURLの書式設定は、Railsのヘルパーメソッド(link_toredirect_tourl_forなど)により自動処理されます。

次のステップ

 これで正常に機能するWikiシステムが完成しました。しかし、この基本システムはまだ改良の余地があります。Railsをさらに学習したい方や、本稿のサンプルをとにかく改良してみようと思う方は、以下に挑戦してみてください。

  1. Railsの機能を活かして、アプリケーションのWikiページをデータベースに永続化できるようにする(実際のWikiテキストにはtextデータ型を使用する)。
  2. インデックス作成機能と検索機能を提供する既存のRuby gemを使用して検索機能を追加する(例えば、ferret.davebalmain.com/tracで、このような機能を持つFerretというgemを入手可能)。
  3. WikiWordや変更履歴などの一般的なWiki機能のサポートを追加する。

 以上を参考にしながら、RubyとRailsのコーディングをぜひ楽しんでください。

参考資料

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Anil Hemrajani(Anil Hemrajani)

20年に及ぶプログラミング歴を持つ。多くの記事や一般読者向けの本を執筆し、業界関連の賞を多数受賞。世界の4大陸で講演を行い、ある有名な開発者コミュニティを創設した経験を持ち、成功企業の経営にも携わる。現在は独立コンサルタントとして活動中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/1343 2007/06/04 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー