[outdated] Community Engine on Rails3 を使ってみようとする

放置気味で時間がたち、Rails 3.1 もリリースされ、開発が進んでいるようなので、やり直しました。

Community Engine on Rails3 を使ってみようとする

今日のSNSにありがちなコンポーネントを備え、プラグインもたくさんありそう。なければ作ればいいじゃない、ということで使ってみようとした。

セットアップ

せっかくなので Rails3 ブランチを用います。記事執筆現在、正式版ではないですが、安定版のリリースに期待しましょう。

rvm で新しく gemset を作って bundler をインストールしておきます。

ruby 1.9.2、rails 3.1.0 でセットアップします。

rvm gemset create ce
rvm gemset use ce
gem install bunder

Gemfile

とりあえず Readme 通りに Gemfile を記述

source 'http://rubygems.org'                                                                                                    
source 'http://gems.rubyforge.org'
source 'http://gemcutter.org'
# Bundle edge Rails
gem 'rails', '3.1.0.beta1'
gem 'arel', '~> 2.1.0'
gem 'rack', '1.3.0.beta'
gem 'rake', '0.8.7'
# Community Engine
gem 'community_engine', '2.0.0.beta', :git => 'https://github.com/bborn/communityengine.git', :branch => 'rails3'

# Temporary edge sources for other libraries
gem 'authlogic', :git => 'https://github.com/bborn/authlogic.git'
gem 'calendar_date_select', :git => 'https://github.com/paneq/calendar_date_select.git', :branch => 'rails3test'
gem 'omniauth', :git => 'https://github.com/intridea/omniauth.git'
gem 'meta_search', :git => 'https://github.com/ernie/meta_search.git'

# Additional gem
gem 'sqlite3'
gem 'sass'
gem 'sprockets', '2.0.0.beta.2'
gem 'uglifier'
gem 'pg'
gem 'therubyracer-heroku', '0.8.1.pre3'

ReadMe と異なる部分がありますが、記事(作業)中で必要になって追加していったものを含んでいます。

sass は後の community_engine:install:migrations 中に「sassがhamlにバンドルされなくなりました」的な警告が出たため加えました。

sprockets のバージョン指定は後の migrate で問題があったために追記しています。

Gem をインストールと migrate とエラー対処

bundle install --binstubs

Gem をインストールして、Community Engine をセットアップします。

bin/rake community_engine:install:migrations

DEPRECATION WARNING が大量。とりあえずそのまま先に進めます。

警告が大量に出ますが将来的に修正されることを祈って無視します。

bin/rake db:migrate

ここでエラーが起きて、rake:abort になってしまいました。

undefined method `context' for #<Sprockets::Environment:0x23515f4>

https://github.com/rails/rails/issues/453

ここが参考になるようです。sprockets のバージョンは 2.0.0.bata.2 を指定します。(作業時のバージョンは bata.10 でした)

再度、migrate してひとまず完了です。

アプリケーション起動

config/application.yml を作成して、コミュニティサイト名を設定します。

# application.yml community_name: CommunityDemo

config/routes.rb にCommunityEngineのマウントを記述

mount CommunityEngine::Engine => "/"

そして views/layouts/application.html.erb と public/index.html を削除します。

サーバーをスタートさせてみます。

bin/rails server


こんな感じで画面が出ればセットアップ完了。

Heroku へデプロイ

ここまで来たら、せっかくなので Heroku へデプロイ。

heroku create
heroku stack:migrate bamboo-mri-1.9.2
git push heroku master

ruby 1.9.2 で動作させるために、heroku stack:migrate bamboo-mri-1.9.2 を挟んでいます。

bin/rake community_engine:install:migrations は勝手にやってくれたようなので、rake db:migrate を実行します。

Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` (pg is not part of the bundle. Add it to Gemfile.)

といわれたので、Gemfile に追記してデプロイし直しますが、ctiverecord-postgresql-adapter と追記しても「見つからない」とエラーが出るので、pg とすると解決するようです。

gem 'pg'

再度、rake db:migrate します。すると今度は別のエラー。

uninitialized constant Rake::DSL

rake が 0.8.7 以下でないと発生するエラーらしいので、再度 Gemfile を更新。

gem 'rake', '0.8.7'

またエラー

no such file to load -- uglifier

さらに Gemfile に uglifier も追加して、再々度、rake db:migrate

Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.

どうやらこの Problem deploying Rails 3.1 project to Heroku: Could not find a JavaScript runtime. 問題らしいので、gem ‘therubyracer-heroku’, ‘0.8.1.pre3’ を追加します。

ここまで来てようやく rake db:migrate 成功。

heroku open で開いて動作を確認。http://morning-leaf-675.heroku.com/

ひとまずは導入完了です。ここからひとしきり動かしてみて感じをつかんでみたいと思います。

上記は気が向いて消すまでは残しておくのでご自由に触ってください。さじ加減で消したりするかもしれませんが。

というか、サインアップしようとしたらもうエラー。

ぼちぼち動くようにしていきたいです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする