Alchemy CMS フレームワークを使用して、Rails サイト内にゲストブック モジュールを構築しようとしています。Alchemy を使用したモジュールのビルドに関するドキュメントはあまりないように思われるので、このページから離れます。
2 つのコントローラーを作成しました。1 つは管理者が使用する guestbook_controller.rb という名前で、これを app/controllers/admin の下に配置しました。
module Admin
class GuestbookController < Alchemy::Admin::ResourcesController
def index
"index"
end
end
end
ゲストが app/controllers/guestbook_controller.rb の下にアクセスするためのもう 1 つ
class GuestbookController < ActionController::Base
def index
"index"
end
end
私の意図は、ゲストブックの投稿が Alchemy 内の既存のページの 1 つの下に表示され、フォームもこのページに表示されることです。
ゲストブック モデルは次のようになります。
class GuestbookEntry < ActiveRecord::Base
attr_accessible :location, :message, :name
end
私のルートファイルは次のようになります。
resources :guestbook
namespace :admin do
resources :guestbook
end
mount Alchemy::Engine => '/'
configの下にauthorization_rules.rbというファイルがあり、次のようになります。
role :admin do
has_permission_on :guestbook, :to => [:manage]
end
end
私が直面している最初の問題は、ルート /admin/guestbook に行くと「You are not Authorized」というエラーが表示されることですが、認証ルール ファイルはイニタライザーによって呼び出される必要があるのに、なぜこのエラーが発生するのでしょうか?
# Registering guestbook module in Alchemy CMS
Alchemy::Modules.register_module(YAML.load_file(File.join(File.dirname(__FILE__), '../..', 'config/guestbook_module.yml')))
# Loading authorization rules and register them to auth engine instance
Alchemy::AuthEngine.get_instance.load(File.join(File.dirname(__FILE__), '../..', 'config/authorization_rules.rb'))