Railsで使えるGem

Rails4.1に対応したRefinery CMS 3.0を試してみた

投稿日:

Refinery CMS

Refinery CMSはRails製のCMS.
特にWebの知識がなくてもサイトを管理できる仕組み.

公式

refinerycms.com/

Github

github.com/refinery/refinerycms

試した環境

Ruby 2.1.2p95
Rails 4.1.4
Refinery CMS 3.0.0

事前にImageMagicをインストールしておく必要がある.

Gemfile

generate

cmsの導入

基本的な管理画面を導入する

application.html.erbの削除

Spreeなどと同じくオーバーライドする方式なので、自分のアプリのlayout/application.html.erbが残っていると、refineryのapplication.html.erbを使わず不都合が起きる.
ので、削除しておく.

config関係のgenerate

基本的な設定ファイルの作成

翻訳関係の設定ファイルの作成

configファイル

core.rb

Company Nameをコメントアウトして設定する

i18n.rb

デフォルト言語を日本語にしておく

起動

rails s でサーバーを起動して、サーバーアドレス:3000/refineryにアクセスすると初期ユーザーを登録できる

screenshot

管理画面

ダッシュボード
screenshot

ユーザー管理
screenshot

画像管理
screenshot

ファイル管理
pdfなども管理可能
screenshot

ページ管理
screenshot

トラブルシューティング

ページが見つからないというエラー

rails g refinery:pages としておくと、初期ページが作成されることがある.
ただ、日本語環境にしているため、表示ができずエラーとなってしまうことがある.
これらは管理画面からも削除できない.
この場合、サンプルはいったんconsoleから削除すればよい.
なお、ルートのページはdestroy!でないと削除できない.

Menuが出てこない

ページの詳細画面でメニューに表示をチェックすればページへのリンクが表示されるはず.
メニュー自体が出てこない場合は、application.html.erbを削除していない可能性がある.

ルートのページを作りたい

ページの詳細画面で、「ほかのウェブサイトやページに転送する」で、/を指定すれば、なぜかルートページになる.
screenshot

サイトの構造

よくあるHTML5サイトの構造

新しいページパーツの追加

デフォルトでは、ページごとにSide Bodyというパーツを追加するかどうかを選べるだけ

rails g refinery:pages で、config/initializers/refinery/pages.rbを追加して、次の設定をする.

これでページ編集の際に、右上にあたらしいパーツを追加するボタンが表示されるようになる

screenshot

新しいEngineの追加

Engineとは

RailsのEngineは、要するにRailsアプリ内Railsアプリみたいな仕組み.
詳しくは次を参照
Getting Started with Engines
#277 Mountable Engines
使いやすくなった Rails 3.1 の Engine

Refineryでは新しくEngineを作って、ブラウザ上でコンテンツの追加・編集・削除などができるようになる.

Engineの作成

試しにBlogという新しいEngineをつくってみる.
要素はRailsのScaffoldとほぼ同じだけど、imageというrefineryのコンテンツを使えたりする.

Engineの追加

最後に出てきた次の指示に従う

Strong Parameters

サイトエディタにBlogsという項目ができている
screenshot

RailsのScaffoldと同じく適切なフォームを自動で設置してくれる
screenshot

Imageの場合はアップロードできるようになる
screenshot

しかし、記事を作成することはできない.
Please override blog_params with your desired parameter security.というStrong Parametersがらみっぽいエラーが出てくる.
screenshot

このあたりの議論を参考にStrong Parametersを設定する.
具体的には、admin以下のコントローラーで、blog_paramsを設定する.
imageの場合は、image_idを許可することに注意.

これで無事に新しいBlogが登録できる.
screenshot

acts_as_indexedでの検索に対応する

AdminページでBlogsを検索しようとすると、undefined method `with_query’ for #

これは、EngineでつくったModelに、acts_as_indexedと書いてないから.
EngineでつくったModelのコメントどおりにacts_as_indexedと書けばエラーが出ず検索できるようになる.
ただし、日本語での検索には対応していない様子.

情報

カテゴリー :refinery Ruby on RailsでWebサイト公開!に挑戦中
“refinerycms” でタグ付けされたコンテンツ | Design Recipe 別館 Blog

-Railsで使えるGem
-

執筆者:

関連記事

Rails3でajaxでD&Dでまとめてファイルアップロード2~jQueryFileUpload for Rails

  前提 Rails3でajaxでD&Dでまとめてファイルアップロード~jQueryFileUpload for Rails Ruby on Rails 3.2でファイルアップロード …

Rails3.2+jQueryUI1.10でjQuery-UI-Bootstrapのデモ画面を出すところまでやった

なにかいつの間にかかっこいい感じのサイトになってた addyosmani.github.com/jquery-ui-bootstrap/ jquery-ui-bootstrap.github.io/j …

Rails3.2とBackbone.jsでサーバーサイドのソーティング

By: Haldane Martin – CC BY 2.0   Rails3.2とBackbone.jsでサーバーサイドのフィルタリング 次はソートを実装したい 目次1 サーバ …

RailsでECサイト構築4 確認メールを送る~spree

  spreeでは注文したときと発送したときにメールを送信できるように設定できるので、やってみた   目次1 設定2 翻訳 設定 管理画面から設定>メールシステムの設定から これで …

no image

Rails3.2.8で自動テスト環境を整える〜cucumber+spork+guard

環境 ruby 1.9.3 & rails 3.2.8 参考 cucumber + spork + guard + factory_girl あってもよいが[crayon-58aaa9fb5d …