를 설치 고안했기 때문에 내 레일 3.2.3 어플은 bdm_content_server
왜 내 엔진 플러그인
내가 bdmcs
라는 레일 엔진 플러그인을 가지고라는 레일 응용 프로그램이 실패한다.
엔진이 내 응용 프로그램에 로컬 파일로 설치됩니다.
gem "bdmcs", :path => "../bdmcs"
이 엔진은 잘 실행되고, 나는에 WEBrick을 실행할 때 응용 프로그램을 통해이 컨트롤러와 뷰를 접근 할 수 있었다.
엔진의 내부에 장치를 설치하여 엔진의보기에 액세스 할 수있는 사용자를 제어합니다. 설치는 괜찮 았는데 (약간 수정 ala Rails engine and devise), 엔진 내에서 데이터베이스 마이그레이션을 실행할 수 있었지만 설치 한 응용 프로그램을 마이그레이션하려고 할 때 오류가 발생했습니다 :
undefined method `secret_key=' for Devise:Module
/var/apps/bdm_content/bdmcs/config/initializers/devise.rb:7:in `block in <top (required)>'
/var/lib/gems/1.9.1/gems/devise-2.2.8/lib/devise.rb:267:in `setup'
/var/apps/bdm_content/bdmcs/config/initializers/devise.rb:3:in `<top (required)>'
응용 프로그램이 엔진의 장치 설정 및 구성을 승인하지 않는 것 같습니다.
나는 응용 프로그램에 대한 Gemfile에 설치된 유증 보석을 가지고, 내가 그것을 제거하면 나는 다른 오류 얻을 :cannot load such file -- devise
/var/apps/bdm_content/bdmcs/lib/bdmcs.rb:1:in `require'
/var/apps/bdm_content/bdmcs/lib/bdmcs.rb:1:in `<top (required)>'
사람이 어떤 생각을 가지고 있습니까?
비슷한 질문을했지만 주위에 응용 프로그램이나 장치가있는 Devise와 관련된 질문 만 찾았습니다.
Devise.setup do |config|
config.secret_key = 'some_random_key'
config.mailer_sender = '[email protected]'
require 'devise/orm/active_record'
config.case_insensitive_keys = [ :email ]
config.strip_whitespace_keys = [ :email ]
config.skip_session_storage = [:http_auth]
config.stretches = Rails.env.test? ? 1 : 10
config.reconfirmable = true
config.password_length = 8..128
config.reset_password_within = 6.hours
config.sign_out_via = :delete
config.router_name = :bdmcs_user
end
그리고 내/bdmcs/lib 디렉토리 : - 사전 에서
감사 Testero
여기 (고안에 의해 내 엔진에 설치로) 내 /bdmcs/config/initializers/devise.rb 파일입니다 /bdcms.rb 파일 :
require 'devise'
require "bdmcs/engine"
module Bdmcs
end
수정 됨 - 선명도와 더 자세히
이 줄은 내 엔진 플러그인 내부의 devise.rb에 이미 설정되어 있지만, 그 부분은 문제가됩니다. devise가 엔진 외부에서 인식되지 않기 때문에 config 변수가 설정되지 않은 것입니다. 아니면 내 애플리케이션에도 추가 하시겠습니까? 난 devise.rb initializer 거기 없어. – Jocko
좋아, engine.rb에 'devise'가 필요합니다. –
예, 해당 파일의 내용으로 질문을 업데이트했습니다. – Jocko