Создание пользовательской гостевой книги модуля для алхимии CMS
-
13-12-2019 - |
Вопрос
Я пытаюсь построить модуль гостевой книги на площадке рельсов, используя Framework Alchemy CMS. Там, кажется, не так много на пути документации для здания модуля с алхимией, поэтому я просто выхожу из
Я создал два контроллера, которые администраторы будут использовать под названием GuestBook_controller.rb и поместили это под приложение / контроллеры / admin
module Admin
class GuestbookController < Alchemy::Admin::ResourcesController
def index
"index"
end
end
end
.
И другой для гостя к доступу под приложением / контроллерами / гостевой книгой_Controller.rb
class GuestbookController < ActionController::Base
def index
"index"
end
end
.
Мое намерение состоит в том, что посты гостевой книги будут отображаться под одной из страниц, уже в алхимии, и на этой странице также будет отображаться форма.
Модель гостевой книги выглядит следующим образом:
class GuestbookEntry < ActiveRecord::Base
attr_accessible :location, :message, :name
end
.
Файл My Marross выглядит следующее:
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
.
Первая проблема, которую я сталкиваюсь, это то, что переход к маршруту / администратору / гостевому книгу дает мне ошибку «Вы не авторизованы», но файл правил авторизации должен быть вызван моим иновалансиром, так почему я получаю Эта ошибка?
# 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]
.
Еще одна вещь, которую я заметил: ваш гостевой книгой Frontend должен наследовать от алхимии :: BaseController.
, и вы должны убедиться, что ваша страница вы хотите сделать записи в гостевой книге, не должны быть кэшированы алхимией.Вы можете сделать это, используя опцию cache: false
в Page_Layouts.yml для макета страницы.