文書の過去の版を表示しています。
目次
Rails3
Ruby on Rails 3に関する情報
インストール
- ruby 1.8.7 以降、あるいは ruby 1.9.2 以降をインストールする。
- rubygemsをインストールする。
Railsをインストールする。
$ gem install rails
アプリケーション作成
新しいrailsアプリの作成
$ rails new application_name
データベースの種類を指定
$ rails new application_name -d mysql
JavaScriptライブラリを入れない(標準のprototype.jsベースのライブラリではなく、jquery-ujsというjQueryベースのライブラリを使いたい場合)
$ rails new application_name -d mysql -J
テストライブラリを入れない(RSpecを使いたい場合)
$ rails new application_name -d mysql -T
データベース作成
config/database.yamlにデータベースの設定を記述(DB作成のため、最初はユーザ名をrootしておく)
DBを作成(test と developmentのDBが作成される)
$ rake db:create
全部作る場合
$ rake db:create:all
productionだけ作る場合
$ rake db:create RAILS_ENV=production
RSpec-railsを使う
Rails3でRSpecを使うには、rspec-rails v2 以降が必要。現時点(2010/09/24)では、v2系列の正式リリース版は無い
Gemfileに以下の記述を追加。
gem 'rspec-rails', '>=2.0.0.beta'
インストール
$ bundle install $ rails generate rspec:install
jQuery-railsを使う
Gemfileに以下の記述を追加
gem 'jquery-rails'
インストール
$ bundle install $ rails generate jquery:install
HTMLで読み込ませる(app/views/layout/application.html.erb の例)
<!DOCTYPE html> <html> <head> <title>Taskcard</title> <%= stylesheet_link_tag :all %> <%= javascript_include_tag :defaults %> <%= javascript_include_tag "jquery.min" %> <%= javascript_include_tag "rails" %> <%= csrf_meta_tag %> </head> <body> <%= yield %> </body> </html>
rails.jsを読み込んでいないとresourcesでPUTやDELETEを実行できないので注意
Scaffold
Rails2と同じ
$ rails generate scaffold ModelName name:string title:string description:text
Gemの管理
Rails3でライブラリを管理する場合、gemコマンドを直接叩くのではなく、bundlerというgemラッパーライブラリを使ったgem管理が推奨されている。
例えばデータベースにmysqlを指定してrailsアプリを作成した場合、mysql2というgemが必要になる。もしmysql2が入ってなければ
$ bundle install
とするとmysql2のgemがインストールされる。
bundleコマンドで管理されるライブラリはGemfileというファイルに記述されている。データベースにmysqlを指定してrailsアプリを作成すると、Gemfileにあらかじめmysql2が記述されているので bundle install で自動的にmysql2がインストールされるという作りになっている。
gem 'rails', '3.0.0' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' gem 'mysql2' # rubyist-aasmはgithubのリポジトリにあるのでsourceで指定する。 # またGemの名前とモジュール名が異なっているのでrequireする名前を指定する。 gem 'rubyist-aasm', '2.1.1', :require => 'aasm' # production環境では使わない(このオプションは廃止された、groupで指示する) gem 'ruby-debug', :except => 'production' # development環境で使う group :development do gem 'ruby-debug' end
aasmはrubygems.orgにはなく、gems.github.comにあるので、sourceに追加する。
source 'http://rubygems.org' source 'http://gems.github.com'
sourceを指定せずにgitリポジトリを指定して直接取得できる。gemで公開されていないforkや最新版も取得できる。
gem 'rubyist-aasm', '2.1.1', :require => 'aasm', :git => "git://github.com/rubyist/aasm.git"
bundleでのgemインストール先
Bundler: The best way to manage Ruby applications
$ bundle install
ふつーにgemを使ったときと同じ場所にインストールされる。rootパスワードを聞かれる。MacOSXでは自分のパスワードで良いようだ。
$ bundle install vendor/bundle
とするとインストールディレクトリを指定できる。
なお、一度vendor/bundleにinstallすると.bundle/configというファイルに記録されるので、以降は指定する必要がないらしい。railsを起動する時も、このパスを見に行くようだ。
--- BUNDLE_DISABLE_SHARED_GEMS: "1" BUNDLE_PATH: vendor/bundle
インストール先を見るには
$ bundle show rubyist-aasm
railsコマンド
railsアプリケーションのディレクトリでrailsコマンドを実行すると、script/rails が実行される。
旧バージョンのscriptコマンドにあったものは rails コマンドのサブコマンドとして実行できる。例えば開発用サーバの起動は
rails 2
$ script/server
rails 3
$ rails server $ script/rails server
となる。