我正在尝试使用 Alchemy CMS 框架在 Rails 站点中构建留言簿模块。使用 Alchemy 构建模块的文档方式似乎并不多,所以我只是离开了这个页面。
我创建了两个控制器,管理员将使用一个名为 guestbook_controller.rb 并将其放在 app/controllers/admin 下
module Admin
class GuestbookController < Alchemy::Admin::ResourcesController
def index
"index"
end
end
end
另一个供客人在 app/controllers/guestbook_controller.rb 下访问
class GuestbookController < ActionController::Base
def index
"index"
end
end
我的意图是留言簿帖子将显示在 Alchemy 中已有的一个页面下,并且此页面上还将显示一个表单。
留言簿模型如下所示:
class GuestbookEntry < ActiveRecord::Base
attr_accessible :location, :message, :name
end
我的路线文件如下所示:
resources :guestbook
namespace :admin do
resources :guestbook
end
mount Alchemy::Engine => '/'
我在配置下有一个名为 authorization_rules.rb 的文件,如下所示:authorization do
role :admin do
has_permission_on :guestbook, :to => [:manage]
end
end
我遇到的第一个问题是去路由 /admin/guestbook 给我错误“你没有被授权”,但是我的初始化程序应该调用授权规则文件,那么为什么我会收到这个错误?
# 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'))