Создание пользовательской гостевой книги модуля для алхимии CMS

StackOverflow https://stackoverflow.com//questions/11710115

Вопрос

Я пытаюсь построить модуль гостевой книги на площадке рельсов, используя 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 для макета страницы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top