ユカシカド エンジニアブログ

体の栄養状態を把握する検査サービス VitaNoteを開発するエンジニアのブログ

Rails4対応のSpree最短セットアップ with ローカライズ

SpreeのRails4対応の安定版がリリースされたようなので試してみました。何度もやってるのでセットアップの備忘録として書き残しておこうと思います。

インストー

$ rails -v
4.0.0
$ rails new spree_rails4 -T

Gemfile

以下のコードを追加

gem 'spree', github: 'spree/spree', tag: 'v2.1.2'
gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: '2-1-stable'
# 10/17 Spreeのバージョンを更新
# http://spreecommerce.com/blog/new-one-three-two-oh-and-two-one-releases

して、

$ bundle install

Spreeのインストー

国内向けサービスであればサンプルデータをいっしょに入れると削除するのが面倒(特に都道府県は大変)なのでオプションで指定してインストールする。

$ bundle exec rails g spree:install --sample=false --seed=false

config/initializers/spree.rbを編集

spree_auth_deviseを使用するので

Spree.user_class = "Spree::LegacyUser"

から

Spree.user_class = "Spree::User"

へ変更。

起動

ここで一旦、起動するか確認してみます。

$ bundle exec rails s

何もないまっさらなECサイトが立ち上がりました。Rails3と比べてかなり早くなったように感じます。 これから管理者と初期データを追加していきます。

管理者の作成

公式チュートリアルにその方法が書いてあります。

Logging Into the Backend

$ bundle exec rake spree_auth:admin:create

で入力したメールアドレス、パスワードでhttp//localhost:3000/adminへアクセスできるようになりました。

初期データの投入

以前、

Spree 2.0.xの日本ローカライズ seeds.rbをつくってみた

で作成したseedファイルを使うと思ったらダメだったので今回の為に新たに用意。

Gist:aq2bq/seeds.rb

をdb/seeds.rbへ上書きしてコマンドを実行。

$ bundle exec rake db:seed

国際化対応

国際化対応についてはspree_i18nというプロジェクトとgemがあるので、それを利用させてもらいます。
Gemfileへ以下の2行を追加し、bundle install

gem 'spree_i18n', github: 'spree/spree_i18n', branch: '2-1-stable'
# gem 'globalize', github: 'globalize/globalize', branch: 'master' 
# 2013/10/15修正
# 2013/10/17 さらに修正
# globalizeをGemfileに書く必要がなくなりました。詳細はコメント欄

そしてインストー

bundle exec rails g spree_i18n:install

反映

http://localhost:3000/adminへログインすると設定項目が増えているので、

General Settings > LOCALIZATION SETTINGS > AVAILABLE LOCALES

へ"日本語(ja-JP)(ja)“を追加して"UPDATE"してからSUPPORTED LOCALESへ追加

config/application.rb

以下のコードを追記して

config.i18n.default_locale = :ja

Railsを再起動すると反映されます。

これでやっと注文完了までデモができる状態になりました。

今後引き続きもっとも悩んでいる国内の決済プロバイダに対応させる方法を調べていきます。