"my_theme" テーマとしてビューを切り替えたり、作成できるので、再配布やリニューアルの管理もしやすそうです。 ですが、執筆時に2.0.0b で試してみたところ、views/ に配置したファイルが読み込まれませんでした。 分かる範囲で調べると、そもそもテーマが読み込まれる実装がなされていないようでした。(作業漏れ?バグ?それともやり方が間違っている?) 1.x では、boot.rb でビューのパスを変更しているようなので、それを参考に以下の initializer/theme_loader.rb というのを配置してみた。 # initializers if configatron.theme theme_view" /> "my_theme" テーマとしてビューを切り替えたり、作成できるので、再配布やリニューアルの管理もしやすそうです。 ですが、執筆時に2.0.0b で試してみたところ、views/ に配置したファイルが読み込まれませんでした。 分かる範囲で調べると、そもそもテーマが読み込まれる実装がなされていないようでした。(作業漏れ?バグ?それともやり方が間違っている?) 1.x では、boot.rb でビューのパスを変更しているようなので、それを参考に以下の initializer/theme_loader.rb というのを配置してみた。 # initializers if configatron.theme theme_view" />

Community Engine on Rails3 を弄ってみる

heroku にデプロイも出来たので少し弄ってみる。

設定ファイル

インストール時に作成した、application_config.rb で設定できる項目はまだまだあります。

これをコピーして、書き換えるとよいでしょう。

余談ですが、この “configatron”(コンフィガトロン) 、しばらく “configration”(コンフィギュレーション) と見間違えていたり、”configraton”(コンフィグラトン) や “configaton”(コンフィガトン) と勘違いしたりしてハマりました…。

Theme 機能

大抵の場合、独自のレイアウトを適用してカスタムしたいとおもう人ばかりなので、そのための機能が備わっている。

バージョン 1.x のReadme に書いてあるように、{Rails.root}/themes/my_theme というディレクトリを作り、stylesheets/、javascripts/、images/、views/ というディレクトリを掘り下げます。

views/ 以下にはさらにコントローラーごとのディレクトリを作り、そこに配置されたデフォルトのビューと同名のファイルによってビューを上書きできるようです。

どんなファイルが必要なのかを知るために、Community Engine がインストールされた場所から view/ をコピーしてくるとよいかもしれません。

テーマの指定は config/application_config.rb の configatron のハッシュに以下を加えます。

:theme => "my_theme"

テーマとしてビューを切り替えたり、作成できるので、再配布やリニューアルの管理もしやすそうです。

ですが、執筆時に2.0.0b で試してみたところ、views/ に配置したファイルが読み込まれませんでした。

分かる範囲で調べると、そもそもテーマが読み込まれる実装がなされていないようでした。(作業漏れ?バグ?それともやり方が間違っている?)

1.x では、boot.rb でビューのパスを変更しているようなので、それを参考に以下の initializer/theme_loader.rb というのを配置してみた。

# initializers
if configatron.theme
  theme_view_path = "#{Rails.root}/themes/#{configatron.theme}/views"
  ActionController::Base.view_paths = ActionController::Base.view_paths.dup.unshift(theme_view_path)
end

Rails3 では ActionController::Base.view_paths は廃止予定っぽいので、Rails3 でのいい書き方があったら教えてください。

たぶん 3.1 では互換性のために有効でしょうが、3.2 がリリースされたら動かなくなりそうです。(その前に CE 側で対応してそうですけど)

また、app/views 以下にファイルを配置しても、そのビューが読み込まれましたが、テーマとして切り分けるほうが賢そう。

Heroku  アドオン

Heroku の production 環境で動作させている ce がメール送信でこけるので、sendgrid の設定します。

heroku addons:add sendgrid:starter

メールが飛ばせるように sendgridアドオンを有効に。

sendgrid は無料プランだと 200通 / 1日 までしか送信できませんが、テストには十分でしょう。

メール設定

Heroku でのメール送信が未設定のため、新規登録がエラーになるので、sendgrid を設定します。

heroku のヘルプを参考に、ActionMailer の設定をしました。

// config/environments/production.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.stmp_settings = {
  :address              => 'smtp.sendgrid.net',
  :port                 => 587,
  :domain               => heroku.com,
  :user_name            => ENV['SENDGRID_USERNAME'],
  :password             => ENV['SENDGRID_PASSWORD'],
  :authentication       => :plain,
}

サインアップ時にメールが送信されるようになり、アクティベーションメールでアカウントを有効にできます。

デフォルトのレイアウトは haml で書かれていたのですが、あのコーディング量で、あそこまでレイアウトが出来上がるのには驚きました。

初めはパッと見では全然読めなかったのですが、インデントで構造を表現する文法の恩恵か、ぼんやり理解できてきました。

ただ、ここから出力される html のイメージがまだわきません。というかそれはイメージしてはいけないのかも。

引き続きちょいちょい作業を進めていきたいと思います。

シェアする

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

フォローする