Railsとは何? わかりやすく解説 Weblio辞書 (original) (raw)
Ruby on Rails
![]() |
|
---|---|
![]() |
|
開発元 | Rails Core Team |
最新版 | 8.0.1 / 2024年12月13日 (2か月前) (2024-12-13)[1] |
リポジトリ | github.com/rails/rails ![]() |
プラットフォーム | クロスプラットフォーム |
種別 | Webアプリケーションフレームワーク |
ライセンス | MIT License |
公式サイト | rubyonrails.org ![]() |
テンプレートを表示 |
Ruby on Rails(ルビーオンレイルズ)は、オープンソースのWebアプリケーションフレームワークである。単にRailsあるいはRoRと呼ばれる。その名にも示されているようにRubyで書かれている。またModel View Controller(MVC)アーキテクチャに基づいて構築されている。
実アプリケーションの開発を他のフレームワークより少ないコードで簡単に開発できるよう考慮し設計されている。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年7月 最初のバージョン公開
- 2005年12月13日 バージョン1.0リリース
- 2007年12月7日 バージョン2.0リリース
- 2010年8月29日 バージョン3.0リリース
- 2013年6月27日 バージョン4.0リリース
- 2016年6月30日 バージョン5.0リリース
- 2019年8月15日 バージョン6.0リリース
- 2021年12月15日 バージョン7.0リリース
- 2024年11月7日 バージョン8.0リリース
2004年の登場以後、Ruby on Railsのコンセプトは他のフレームワークにも大きな影響を与えている。Ruby on Railsの影響を受けたフレームワークとしては、PHPのCakePHPやSymfony、PerlのCatalyst、groovyのGrails、Node.jsのYEOMANといったものがある。
RailsのMVCアーキテクチャ
Rails上のMVCアーキテクチャは次のとおりである(Action Packは、この中のViewとControllerのことを指している)。
Model
データベース駆動のMVC WebアプリケーションではModelはRDBMSのテーブルを表すクラスを意味する。RailsではActive Recordを通じてModelクラスを扱う。通常プログラマはActiveRecord::Baseクラスのサブクラスを作る必要がある。そうすることでRDBMSのどのテーブルを使うべきか、どういったカラムを持つべきかを自動的に決定してくれる。
View
MVCではViewは表示のためのロジックであり、コントローラクラスからのデータをどのように表示するかを規定している。WebアプリケーションではHTML内に若干のコードを埋め込むことで実現される。
Controller
MVCではControllerはRailsのAction Packには含まれるアプリケーションコントローラクラスによって扱われる。WebベースMVCアプリケーションではWebブラウザを操作するユーザによりコントローラのメソッドが起動される。
Merb
Merb
作者 | エズラ・シグモントビクス |
---|---|
開発元 | ヤフーダ・カッツ |
最新版 | 1.1.2[3] / 2010年6月17日 (14年前) (2010-06-17) |
リポジトリ | github.com/rails/rails ![]() |
プログラミング言語 | Ruby |
対応OS | クロスプラットフォーム |
種別 | Webアプリケーションフレームワーク |
ライセンス | MIT License |
公式サイト | www.merbivore.com |
テンプレートを表示 |
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]。
2008年12月23日、Rails3にこれらの機能のほとんどを組み込むことが発表された[8][9]。
モジュラリティ
モデル、ビュー、コントローラーアーキテクチャのコントローラーレイヤーのみを適切に内包するが、Webアプリケーションフレームワーク全体で一斉に動作する技術のより大規模なスイートのための統合ポイントを提供している。Railsとの統合の主なトピックはWebサーバインターフェイス、MVCモデルレイヤー、MVCビューレイヤー、最後にコントローラーエクステンションとアドオンである。また既定のアプリケーションスタックはモデルレイヤーではデータマッパー(英語版)、ビューレイヤーではERB、WebサーバレイヤーではRack(英語版)とMongrelをそれぞれ組み込んでいる[10][11]。
関連項目
脚注
出典
- ^ “Rails Version 8.0.1 has been released!”. rubyonrails.org (December 13, 2024). 2025年1月23日閲覧。
- ^ 重複したコードを書かない意味もある
- ^ https://github.com/merb/merb/wiki
- ^ Zygmuntowicz, Ezra (18 Oct 2006), “ANN: Merb, Mongrel+Erb”, osdir.com, http://osdir.com/ml/lang.ruby.mongrel.general/2006-10/msg00105.html
- ^ Ruby on Rails 3.0 Release Notes
- ^ a b Boone, Paul (18 Sept 2008), “Rails/Merb performance comparison (on mongrel, jruby, tomcat, glassfish)”, mindbucket.com, http://www.mindbucket.com/2008/09/18/rails-merb-performance-comparison-on-mongrel-jruby-tomcat-glassfish/
- ^ Zygmuntowicz, Ezra (23 Dec 2008), Merb *is* Rails, http://brainspl.at/articles/2008/12/23/merb-is-rails
- ^ Hansson, David Heinemeier (23 Dec 2008), “Merb gets merged into Rails 3!”, weblog.rubyonrails.org, http://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3/
- ^ Katz, Yehuda (23 Dec 2008), “Rails and Merb Merge”, yehudakatz.com, http://yehudakatz.com/2008/12/23/rails-and-merb-merge/
- ^ merb-core gem dependencies, (23 mar 2010), http://rubygems.org/gems/merb-core
- ^ merb gem dependencies, (23 mar 2010), http://rubygems.org/gems/merb
外部リンク
- 公式ウェブサイト(英語)
- Ruby on Rails ガイド
- rails - GitHub
表話編歴Ruby | ||
---|---|---|
実装 | MRI / YARV IronRuby JRuby MacRuby(英語版) MagLev(英語版) mruby mruby/c Rubinius(英語版) RubyMotion(英語版) | ![]() |
IDE | Komodo(英語版) NetBeans RadRails RubyMine(英語版) | |
アプリケーション | Capistrano Chef Hiki Homebrew irb Joruri mobileimap Puppet Rake Redmine RSpec(英語版) RubyGems Sass tDiary 影舞 島根県CMS | |
ライブラリフレームワーク | AspectR eRuby (RHTML) Merb Padrino Cocoa (API)RubyCocoa Ruby on Rails Shoes Sinatra Star Ruby QtRuby | |
サーバソフトウェア | mod_ruby(英語版) Mongrel(英語版) Phusion Passenger (mod_rails/mod_rack) Rack(英語版) WEBrick | |
その他 | Document format RubyKaigi Rubyアソシエーション Rubyライセンス まつもとゆきひろ | |
![]() ![]() ![]() |