2012-07-29 77 views
0

我试图在使用炼金术CMS框架的Rails站点内建立留言模块。用Alchemy构建模块的文档看起来并没有太多的东西,所以我只是从this page开始。为Alchemy CMS创建自定义留言簿模块

我创建了两个控制器,一个管理员会使用名为guestbook_controller.rb下的应用程序/控制器/管理放在这个

module Admin 
    class GuestbookController < Alchemy::Admin::ResourcesController 
    def index 
     "index" 
    end 
    end 
end 

,另一个客人在应用/控制器/ guestbook_controller.rb访问

class GuestbookController < ActionController::Base 
    def index 
    "index" 
    end 
end 

我的本意是,留言帖子都已经内炼金术和一个表单页面的一个下显示也将被显示在此页面上。

的留言模型如下这样:

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 

第一个问题我遇到的是去route/admin/guestbook给我的错误'你没有授权',但授权规则文件应该由我的initalizer调用,所以为什么我得到这个错误?

# 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')) 

回答

1

授权的问题很简单。 你只需要写:

has_permission_on :admin_guestbook, :to => [:manage] 

另一件事我注意到:你的前端GuestbookController应该从炼金术继承:: BaseController。

而且您应该确保您想要呈现留言簿条目的页面不能由Alchemy缓存。您可以通过在页面布局的page_layouts.yml中使用cache: false选项来完成此操作。