我正在尝试使用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选项来完成此操作,以获取页面布局。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top