ユーザ用ツール

サイト用ツール


rails3

文書の過去の版を表示しています。


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

となる。

rails3.1303216906.txt.gz · 最終更新: 2011/04/19 12:41 by nullpon