Loading AI tools
オープンソースのWebアプリケーションフレームワーク ウィキペディアから
Ruby on Rails(ルビーオンレイルズ)は、オープンソースのWebアプリケーションフレームワークである。単にRailsあるいはRoRと呼ばれる。その名にも示されているようにRubyで書かれている。またModel View Controller(MVC)アーキテクチャに基づいて構築されている。
Railsアプリケーションデフォルトページ | |
開発元 | Rails Core Team |
---|---|
最新版 |
7.2.1
/ 2024年8月2日[1] |
リポジトリ | |
プラットフォーム | クロスプラットフォーム |
種別 | Webアプリケーションフレームワーク |
ライセンス | MIT License |
公式サイト |
rubyonrails |
実アプリケーションの開発を他のフレームワークより少ないコードで簡単に開発できるよう考慮し設計されている。Railsの公式なパッケージはRubyのライブラリやアプリケーションの流通ルートであるRubyGemsにより配布されている。
Railsの基本理念は「同じことを繰り返さない」(DRY:Don't Repeat Yourself)と「設定より規約」(CoC:Convention over Configuration)である。
「同じことを繰り返さない」というのは、「定義などの作業は一回だけで済ませろ」との意味である[2]。「設定よりも規約」とは、「慎重に設計された規約(Convention)に従うことにより、設定(Configuration)を不要にする(あるいは軽減する)」ということである。Railsはフルスタックのフレームワークであり、コンポーネントの統合は手動での設定を必要とせず自動で規約に従い行われる。例えば、Ruby on Railsに組み込みのORMライブラリであるActive Recordでは、クラス定義においてデータベースから読み取るべき属性名等を指定する必要はない。Active RecordはRDBMSの表定義から自動的にその情報を取得する。したがって、プログラムとRDBMSの両方にそれを定義するというような冗長な作業を行う必要はない。
Ruby on Railsはデンマークのプログラマであるデイヴィッド・ハイネマイヤー・ハンソンにより、プロジェクト管理ツール "Basecamp" の開発に用いられた知見やコードを抽出し、一般化することにより作成された。
2004年の登場以後、Ruby on Railsのコンセプトは他のフレームワークにも大きな影響を与えている。Ruby on Railsの影響を受けたフレームワークとしては、PHPのCakePHPやSymfony、PerlのCatalyst、groovyのGrails、Node.jsのYEOMANといったものがある。
Rails上のMVCアーキテクチャは次のとおりである(Action Packは、この中のViewとControllerのことを指している)。
データベース駆動のMVC WebアプリケーションではModelはRDBMSのテーブルを表すクラスを意味する。RailsではActive Recordを通じてModelクラスを扱う。通常プログラマはActiveRecord::Baseクラスのサブクラスを作る必要がある。そうすることでRDBMSのどのテーブルを使うべきか、どういったカラムを持つべきかを自動的に決定してくれる。
MVCではViewは表示のためのロジックであり、コントローラクラスからのデータをどのように表示するかを規定している。WebアプリケーションではHTML内に若干のコードを埋め込むことで実現される。
MVCではControllerはRailsのAction Packには含まれるアプリケーションコントローラクラスによって扱われる。WebベースMVCアプリケーションではWebブラウザを操作するユーザによりコントローラのメソッドが起動される。
作者 | エズラ・シグモントビクス |
---|---|
開発元 | ヤフーダ・カッツ |
最新版 |
1.1.2[3]
/ 2010年6月17日 |
リポジトリ | |
プログラミング 言語 | Ruby |
対応OS | クロスプラットフォーム |
種別 | Webアプリケーションフレームワーク |
ライセンス | MIT License |
公式サイト |
www |
Merb(MongrelとErbの造語[4])とは、2008年12月23日にRuby on Rails 3.0のリリースの一環として[5]Rails Webフレームワークに統合された[6]Webアプリケーションフレームワークである。
MerbのプロジェクトはRuby on Railsのコントローラースタックにおけるクリーンルーム実装[7]として始められたが、Railsの精神や方法論から派生した数あるアイデアを組み込むまでに成長した。
Merbはコンポーネントにモジュール性を持ち、伸張性のあるAPIデザインや垂直スケーラビリティを有している。MerbはRails以上にフレキシブルで処理が早いフレームワークにしようと考えられていた[6]。
モデル、ビュー、コントローラーアーキテクチャのコントローラーレイヤーのみを適切に内包するが、Webアプリケーションフレームワーク全体で一斉に動作する技術のより大規模なスイートのための統合ポイントを提供している。Railsとの統合の主なトピックはWebサーバインターフェイス、MVCモデルレイヤー、MVCビューレイヤー、最後にコントローラーエクステンションとアドオンである。また既定のアプリケーションスタックはモデルレイヤーではデータマッパー、ビューレイヤーではERB、WebサーバレイヤーではRackとMongrelをそれぞれ組み込んでいる[10][11]。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.