문제

Alchemy CMS 프레임 워크를 사용하여 레일 사이트 내에서 방명록 모듈을 구축하려고합니다. 연금술으로 모듈 건물에 대한 문서화 방식에 많은 것으로 보이지 않으므로 이 페이지 .

Admins가 Greetbook_Controller.rb라는 두 개의 컨트롤러를 만들고 App / Controlers / Admin

에이 값을 배치했습니다.
module Admin
  class GuestbookController < Alchemy::Admin::ResourcesController
    def index
      "index"
    end
  end
end
.

및 App / Controllers / Greengebook_Controller.rb

class GuestbookController < ActionController::Base
  def index
    "index"
  end
end
.

내 의도는 Greendbook 게시물이 이미 연금술 내에있는 페이지 중 하나에 표시 되며이 페이지에 양식이 표시됩니다.

방명록 모델은 다음과 같습니다.

class GuestbookEntry < ActiveRecord::Base
  attr_accessible :location, :message, :name
end
.

내 경로 파일은 다음과 같습니다.

resources :guestbook

namespace :admin do
  resources :guestbook
end

mount Alchemy::Engine => '/'
.

및 i는 다음과 같습니다. 다음과 같은 구성에서 authorization_rules.rb라는 파일이 있습니다. 승인 수행

  role :admin do
    has_permission_on :guestbook, :to => [:manage]
  end

end
.

마주 치는 첫 번째 문제는 Route / Admin / Dexbook로가는 것입니다. '귀하가 권한이 부여되지 않은'오류가 발생하지만 인증 규칙 파일이 내 initalizer에 의해 호출되어야합니다. 그래서 왜 내가 얻는 이유는 무엇입니까? 이 오류?

# 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]
.

내가 알아 차리는 또 다른 일 : 프론트 엔드 GreenDbookController는 Alchemy :: BaseController에서 상속해야합니다.

및 게시판 항목을 렌더링하려는 페이지가 연금술에 의해 캐싱되어서는 안됩니다.페이지 레이아웃에 대한 page_layouts.yml에서 cache: false 옵션을 사용 하여이 작업을 수행 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top