rbenvでrailsの動作環境を構築 - 吾輩のメモである 上記手順のほぼ引き写し。 rbenv以降から。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
rbenv exec gem install bundler
cd /path/to/railsdir/

cat << EOS > Gemfile
source "http://rubygems.org"
gem "rails", "3.1.3"
EOS

bundle install --path vendor/bundle
bundle exec rails new blog -d mysql

rm -f Gemfile
rm -f Gemfile.lock
rm -rf .bundle

cd blog
bundle install --path vendor/bundle
bundle exec rails g scaffold post title:string body:text

なんだけど、coffee-rails のところでエラーが出てしまったのでひとまず。

課題は Bundler と Gemfile の理解

続き。 「coffee-railsでエラーがでるよ」っていうのと、 そのあとにexecjsがおかしいよっていうのとあって。

  • 「coffee-railsでエラーがでるよ」ってのはGemfileのバージョン指定の問題
  • execjs は以下で対応可能

だった。

ruby on rails 3.1 - ExecJS and could not find a JavaScript runtime - Stack Overflow を参考にした。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
  $ diff -uw Gemfile{.org,}
  --- Gemfile.org 2012-01-03 14:24:53.000000000 +0900
  +++ Gemfile     2012-01-03 14:29:34.000000000 +0900
  @@ -6,6 +6,7 @@
   # gem 'rails',     :git => 'git://github.com/rails/rails.git'

   gem 'mysql2'
  +gem 'therubyracer'

   # Gems used only for assets and not required

と gem ’therubyracer’ を追記。

1
2
3
4
  $ bundle install --path vendor/bundle 
  (略)
    Installing therubyracer (0.9.9) with native extensions 
  (略)

となっていたのを画面で確認。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
      $ bundle exec rails g scaffold post title:string body:text
      invoke  active_record
      create    db/migrate/20120103053320_create_posts.rb
      create    app/models/post.rb
      invoke    test_unit
      create      test/unit/post_test.rb
      create      test/fixtures/posts.yml
       route  resources :posts
      invoke  scaffold_controller
      create    app/controllers/posts_controller.rb
      invoke    erb
      create      app/views/posts
      create      app/views/posts/index.html.erb
      create      app/views/posts/edit.html.erb
      create      app/views/posts/show.html.erb
      create      app/views/posts/new.html.erb
      create      app/views/posts/_form.html.erb
      invoke    test_unit
      create      test/functional/posts_controller_test.rb
      invoke    helper
      create      app/helpers/posts_helper.rb
      invoke      test_unit
      create        test/unit/helpers/posts_helper_test.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/posts.js.coffee
      invoke    scss
      create      app/assets/stylesheets/posts.css.scss
      invoke  scss
      create    app/assets/stylesheets/scaffolds.css.scss

やったね

まとめると

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
rbenv exec gem install bundler
cd /path/to/railsdir/

cat << EOS > Gemfile
source "http://rubygems.org"
gem "rails", "3.1.3"
EOS

bundle install --path vendor/bundle
bundle exec rails new blog -d mysql

rm -f Gemfile
rm -f Gemfile.lock
rm -rf .bundle

cd blog
vi Gemfile
   gem 'therubyracer' #追記
bundle install --path vendor/bundle
bundle exec rails g scaffold post title:string body:text