rails
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
rails [2011/04/20 01:21] – rails2固有の情報を分ける nullpon | rails [2023/08/26 04:14] (現在) – [Pow] 削除 nullpon | ||
---|---|---|---|
行 32: | 行 32: | ||
* [[NetBeans]]にはRuby開発環境が存在する。gemのコントロールもできる。 | * [[NetBeans]]にはRuby開発環境が存在する。gemのコントロールもできる。 | ||
* [[http:// | * [[http:// | ||
+ | |||
===== 実行環境 ===== | ===== 実行環境 ===== | ||
行 46: | 行 47: | ||
Xenなどの仮想環境での運用には十分な慎重さが求められる。仮想環境ではディスク性能が全体のパフォーマンスに非常に大きな影響を与える。なぜならばCPUはマルチコア化で仮想化に対応しているが、ディスクは一つだからだ。IO負荷があまりに大きいとIO waitが跳ね上がってロードアベレージが100を越える事もあり、ホストOSすらも反応しなくなる。I/ | Xenなどの仮想環境での運用には十分な慎重さが求められる。仮想環境ではディスク性能が全体のパフォーマンスに非常に大きな影響を与える。なぜならばCPUはマルチコア化で仮想化に対応しているが、ディスクは一つだからだ。IO負荷があまりに大きいとIO waitが跳ね上がってロードアベレージが100を越える事もあり、ホストOSすらも反応しなくなる。I/ | ||
+ | アプリの負荷分散が必要ならば、nginxをリバースプロキシとしてunicornを並列化すると良い。 | ||
+ | |||
+ | ローカルで動かすならばpassengerのスタンドアローンモードでの実行も良いだろう。 | ||
+ | |||
+ | * [[http:// | ||
====== Rails 2 ====== | ====== Rails 2 ====== | ||
===== Ubuntuにインストール ===== | ===== Ubuntuにインストール ===== | ||
行 110: | 行 116: | ||
script/ | script/ | ||
+ | ====== Rails 3 ====== | ||
+ | Ruby on Rails 3に関する情報 | ||
+ | ===== インストール ===== | ||
+ | * ruby 1.8.7 以降、あるいは ruby 1.9.2 以降をインストールする。 | ||
+ | * rubygemsをインストールする。 | ||
+ | Railsとbundlerをインストールする。 | ||
+ | $ gem install rails | ||
+ | $ gem install bundler | ||
+ | 他の依存gemはbundlerで一括してインストールできるので、railsとbundlerのみをインストール。 | ||
+ | |||
+ | ===== アプリケーション作成 ===== | ||
+ | 新しいrailsアプリの作成 | ||
+ | $ rails new application_name | ||
+ | |||
+ | データベースの種類を指定 | ||
+ | $ rails new application_name -d mysql | ||
+ | |||
+ | JavaScriptライブラリを入れない(標準のprototype.jsベースのライブラリではなく、[[http:// | ||
+ | $ rails new application_name -d mysql -J | ||
+ | | ||
+ | テストライブラリを入れない([[# | ||
+ | $ rails new application_name -d mysql -T | ||
+ | |||
+ | ==== データベース作成 ==== | ||
+ | config/ | ||
+ | |||
+ | DBを作成(test と developmentのDBが作成される) | ||
+ | $ rake db:create | ||
+ | |||
+ | 全部作る場合 | ||
+ | $ rake db: | ||
+ | | ||
+ | productionだけ作る場合 | ||
+ | $ rake db:create RAILS_ENV=production | ||
+ | |||
+ | ==== RSpec-railsを使う ==== | ||
+ | Rails3でRSpecを使うには、rspec-rails v2 以降が必要。現時点(2010/ | ||
+ | |||
+ | [[# | ||
+ | gem ' | ||
+ | |||
+ | インストール | ||
+ | $ bundle install | ||
+ | $ rails generate rspec: | ||
+ | |||
+ | |||
+ | ==== jQuery-railsを使う ==== | ||
+ | :!: Rails 3.1ではjQuery-railsがデフォルトのため、以下の作業は不要である。 | ||
+ | |||
+ | [[# | ||
+ | |||
+ | gem ' | ||
+ | | ||
+ | インストール | ||
+ | $ bundle install | ||
+ | $ rails generate jquery: | ||
+ | |||
+ | |||
+ | HTMLで読み込ませる(app/ | ||
+ | <code ruby> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <%= stylesheet_link_tag :all %> | ||
+ | <%= javascript_include_tag :defaults %> | ||
+ | <%= javascript_include_tag " | ||
+ | <%= javascript_include_tag " | ||
+ | <%= csrf_meta_tag %> | ||
+ | </ | ||
+ | < | ||
+ | <%= yield %> | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | rails.jsを読み込んでいないとresourcesでPUTやDELETEを実行できないので注意 | ||
+ | |||
+ | ==== 自動生成 ==== | ||
+ | |||
+ | Scaffold | ||
+ | $ rails generate scaffold model_name name:string title: | ||
+ | |||
+ | Model | ||
+ | $ rails generate model model_name name:string title: | ||
+ | |||
+ | Controller | ||
+ | $ rails generate controller controller_name [action_name [action_name ... ]] | ||
+ | |||
+ | 作成したものを破棄 | ||
+ | $ rails destroy scaffold model_name | ||
+ | $ rails destroy model controller_name | ||
+ | $ rails destroy controller controller_name | ||
+ | |||
+ | ==== 開発用サーバ起動 ==== | ||
+ | $ rails server | ||
+ | $ script/ | ||
+ | |||
+ | railsコマンドは script/ | ||
+ | |||
+ | ===== railsコマンド ===== | ||
+ | ヘルプ | ||
+ | $ rails help | ||
+ | |||
+ | サブコマンドのヘルプ | ||
+ | $ rails server -h | ||
+ | | ||
+ | |||
+ | ===== Gemの管理 ===== | ||
+ | Rails3でライブラリを管理する場合、gemコマンドを直接叩くのではなく、bundlerというgemラッパーライブラリを使ったgem管理が推奨されている。 | ||
+ | |||
+ | 例えばデータベースにmysqlを指定してrailsアプリを作成した場合、mysql2というgemが必要になる。もしmysql2が入ってなければ | ||
+ | |||
+ | $ bundle install | ||
+ | | ||
+ | とするとmysql2のgemがインストールされる。 | ||
+ | |||
+ | bundleコマンドで管理されるライブラリはGemfileというファイルに記述されている。データベースにmysqlを指定してrailsアプリを作成すると、Gemfileにあらかじめmysql2が記述されているので bundle install で自動的にmysql2がインストールされるという作りになっている。 | ||
+ | |||
+ | <code ruby> | ||
+ | gem ' | ||
+ | | ||
+ | # Bundle edge Rails instead: | ||
+ | # gem ' | ||
+ | |||
+ | gem ' | ||
+ | |||
+ | # rubyist-aasmはgithubのリポジトリにあるのでsourceで指定する。 | ||
+ | # またGemの名前とモジュール名が異なっているのでrequireする名前を指定する。 | ||
+ | gem ' | ||
+ | |||
+ | # production環境では使わない(このオプションは廃止された、groupで指示する) | ||
+ | gem ' | ||
+ | |||
+ | # development環境で使う | ||
+ | group : | ||
+ | gem ' | ||
+ | end | ||
+ | |||
+ | </ | ||
+ | |||
+ | aasmはrubygems.orgにはなく、gems.github.comにあるので、sourceに追加する。 | ||
+ | <code ruby> | ||
+ | source ' | ||
+ | source ' | ||
+ | </ | ||
+ | |||
+ | sourceを指定せずにgitリポジトリを指定して直接取得できる。gemで公開されていないforkや最新版も取得できる。 | ||
+ | <code ruby> | ||
+ | gem ' | ||
+ | </ | ||
+ | |||
+ | ==== bundleでのgemインストール先 ==== | ||
+ | [[http:// | ||
+ | |||
+ | $ bundle install | ||
+ | |||
+ | ふつーにgemを使ったときと同じ場所にインストールされる。rootパスワードを聞かれる。MacOSXでは自分のパスワードで良いようだ。 | ||
+ | |||
+ | $ bundle install vendor/ | ||
+ | | ||
+ | とするとインストールディレクトリを指定できる。 | ||
+ | |||
+ | なお、一度vendor/ | ||
+ | |||
+ | < | ||
+ | --- | ||
+ | BUNDLE_DISABLE_SHARED_GEMS: | ||
+ | BUNDLE_PATH: | ||
+ | </ | ||
+ | インストール先を見るには | ||
+ | $ bundle show rubyist-aasm | ||
rails.1303262468.txt.gz · 最終更新: 2011/04/20 01:21 by nullpon