もっかい見直してみたのでメモなど控え
Tutorial を目視ベースで再確認中。以下にメモを控え。
gem
コマンドラインにオプション付けるの忘れる人とかいちいち入力するのが面倒臭い人向けに以下な .gemrc を作っておけば良い模様。
gem: --no-ri --no-rdoc
.gitignore
Rails 向けの .gitignore が以下らしい。
.bundle db/*.sqlite3* log/*.log *.log /tmp/ doc/ *.swp *~ .project .DS_Store
Heroku
アカウント取得後に以下を云々、とあります。
- まず、heroku な gem を導入。
$ gem install heroku
- ssh の公開鍵を登録
$ heroku keys:add
- remote "heroku" を .git/config に追加
$ heroku create
これで後は git push origin heroku すれば deploy される、はず。。
source 'http://rubygems.org' gem 'rails', '3.0.9' gem 'sqlite3', '1.3.3', :group => :development
scaffold
user な scaffold が例示されております。
$ rails generate scaffold User name:string email:string invoke active_record create db/migrate/20100615004000_create_users.rb create app/models/user.rb invoke test_unit create test/unit/user_test.rb create test/fixtures/users.yml route resources :users invoke scaffold_controller create app/controllers/users_controller.rb invoke erb create app/views/users create app/views/users/index.html.erb create app/views/users/edit.html.erb create app/views/users/show.html.erb create app/views/users/new.html.erb create app/views/users/_form.html.erb invoke test_unit create test/functional/users_controller_test.rb invoke helper create app/helpers/users_helper.rb invoke test_unit create test/unit/helpers/users_helper_test.rb invoke stylesheets create public/stylesheets/scaffold.css $
config/routes.rb の
resources :users
は generate scaffold で追加されているのかどうか。そして Chapter 2 は _No real understanding_ ってナニと共に終わってるあたりが、とほほほ的。
RSpec 云々?
Chapter 3 はいきなり RSpec の環境設定してます。まず -T 付けてプロジェクト作って
$ cd ~/rails_projects $ rails new sample_app -T $ cd sample_app
Gemfile を以下にして
source 'http://rubygems.org' gem 'rails', '3.0.9' gem 'sqlite3', '1.3.3' group :development do gem 'rspec-rails', '2.6.1' end group :test do gem 'rspec-rails', '2.6.1' gem 'webrat', '0.7.1' end
導入したら
$ bundle install
以下なコマンドの実行が必要らしい。
$ rails generate rspec:install
全然記憶にないですな。で、ここを始点に Rails で静的ページを出力云々な動作の確認をしつつ試験も行ないつつ、な模様。
Static Pages
public 配下の云々というあたりはスルー。このサンプルでは generate controller で云々してますね。
$ rails generate controller Pages home contact create app/controllers/pages_controller.rb route get "pages/contact" route get "pages/home" invoke erb create app/views/pages create app/views/pages/home.html.erb create app/views/pages/contact.html.erb invoke rspec create spec/controllers/pages_controller_spec.rb create spec/views/pages create spec/views/pages/home.html.erb_spec.rb create spec/views/pages/contact.html.erb_spec.rb invoke helper create app/helpers/pages_helper.rb invoke rspec $
そうか静的ページなので model が不要なのね。で、この後 autotest がなんちゃらとか home とか contact なコンテンツが云々という記述がありますがスルー。
とりあえず views とか helpers な試験を削除している模様。
$ git rm -r spec/views $ git rm -r spec/helpers
ちなみに controller な試験は home とか contact を GET に行って 200 が戻ること、な試験が書いてあるようです。
次
spork も略。でもこれ、いらいら感が絶対軽減されるはずなので使うべきかな、って思ってます。で、about というコンテンツを作るということで試験から書きはじめていますね。
以下を追加なさっております。
describe "GET 'about'" do it "should be successful" do get 'about' response.should be_success end end
あと、以下の記述についても言及あり。
describe PagesController do render_views
吐きだす view も確認したいので、ということなのか。
んで上記の試験をパスするには
- app/controllers/pages_controller.rb 修正
- app/views/pages/about.html.erb 追加
- config/routes.rb 修正
が必要な模様。詳細は略します。次に表示の試験を追加してますね。
it "should have the right title" do get 'home' response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | Home") end
なカンジ。中身てきにはいっちゃん右の | の横の文字列が異なる形。で、試験を追加して red 確認後に app/views/pages 配下のソレ達に情報を追加して試験を通すんですが、ここから DRY な抽象化が開始されていく模様。
- controller の属性を view 側で使えるのでそれで云々とか
- application.html.erb と yield 使って DRY な抽象化とか
で、Chapter 3 は終了する模様。
続きは
Chapter 5 からでとりあえずエントリ投入。