为Alchemy CMS创建自定义留言簿模块
-
13-12-2019 - |
题
我正在尝试使用Alchemy CMS框架在Rails站点内构建留言簿模块。模块构建与炼金术的模块建筑物的文档似乎没有太多,所以我只是走出此页。
我已经创建了两个控制器,管理员将使用名为guestbook_controller.rb并将其放在app / controlers / admin
下module Admin
class GuestbookController < Alchemy::Admin::ResourcesController
def index
"index"
end
end
end
.
和另一个用于访问App / Controller / PuiteBook_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 => '/'
.
,我在看起来的配置下有一个名为authorization_rules.rb的文件,如下所示: 授权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'))
. 解决方案
授权的问题很容易。 你只需要写作:
has_permission_on :admin_guestbook, :to => [:manage]
.
我注意到的另一件事:你的前端guestbookcontroller应该从alchemy :: baseController继承。
,您应该确保您想要渲染留言簿条目的页面,不得通过Alchemy缓存。您可以通过使用Page_Layouts.yml中的cache: false
选项来完成此操作,以获取页面布局。
不隶属于 StackOverflow