【问题标题】:Error including devise in rails 4 full engine错误包括在 rails 4 full engine 中的设计
【发布时间】:2013-10-21 23:14:01
【问题描述】:

我正在编写一个完整的引擎,其中包括this guide 之后的设计。但是,该指南基于可安装的引擎,而不是完整的引擎,我认为这可能是导致以下错误的原因:

RuntimeError: Rails::Application::RoutesReloader#execute_if_updated delegated to updater.execute_if_updated, but updater is nil: #<Rails::Application::RoutesReloader:0x007f843d9518e8 

routes.rb

Rails.application.routes.draw do

  # Some other stuff

  devise_for :users, {
    class_name: 'User',
    module: :devise
  }, controllers: {
    registrations: 'users/registrations', 
    sessions: 'users/sessions', 
    passwords: 'users/passwords'
  }
end

initializers/devise.rb

Devise.setup do |config|
  config.router_name = :user
  config.secret_key = 'secret_key'
end

lib/my_engine/engine.rb

module MyEngine
  class Engine < ::Rails::Engine
    require "devise"
  end
end

【问题讨论】:

    标签: ruby-on-rails ruby devise ruby-on-rails-4 rails-engines


    【解决方案1】:

    由于此处发现的问题,Rails 没有向您显示正确的错误:https://github.com/rails/rails/issues/10559

    尝试像这样格式化 devise_for 语句:

      devise_for :users, {
        class_name: 'User',
        module: :devise,
        controllers: {
          registrations: 'users/registrations', 
          sessions: 'users/sessions', 
          passwords: 'users/passwords'
        }
      }
    

    看起来您的 devise.rb 文件是由旧版本的 gem 生成的。尝试删除 devise.rb 并运行 rails g devise:install

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多