【问题标题】:Creating a custom Guestbook Module for Alchemy CMS为 Alchemy CMS 创建自定义留言板模块
【发布时间】:2012-07-29 14:43:30
【问题描述】:

我正在尝试使用 Alchemy CMS 框架在 Rails 站点中构建留言簿模块。使用 Alchemy 构建模块的文档方式似乎并不多,所以我将离开 this page

我创建了两个控制器,管理员将使用一个名为 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 的文件,如下所示: 授权做

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

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3.2 alchemy-cms


    【解决方案1】:

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

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

    我注意到的另一件事:您的前端 GuestbookController 应该继承自 Alchemy::BaseController。

    并且您应该确保您要呈现留言簿条目的页面不得被 Alchemy 缓存。您可以通过在 page_layouts.yml 中为您的页面布局使用 cache: false 选项来做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 1970-01-01
      • 2016-10-05
      • 2023-04-03
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      相关资源
      最近更新 更多